Yazar:
    Oluşturma:2026-09-13Son güncelleme:2026-09-27

    next-intl ve Intlayer Karşılaştırması: React & Next.js Uluslararasılaşma (i18n) Testi

    next-intl VS Intlayer

    next-intl, Next.js için en popüler i18n kütüphanesidir. Intlayer ise derleyici tabanlı, bileşen kapsamlı bir alternatiftir. Her ikisi de bir App Router uygulamasını yerelleştirir. Soru, uygulama derlendikten sonra her birinin maliyetinin ne olduğudur.

    Bu makale bir kılavuz değildir. Her kütüphaneyle aynı uygulamayı derleyen ve tarayıcının gerçekte ne indirip çalıştırdığını ölçen açık kaynaklı bir karşılaştırma paketi olan Benchmark Bloom verileriyle desteklenen bir karşılaştırmadır.

    tl;dr: Aynı Next.js uygulamasında, next-intl her sayfaya +12.6 KB gzip JavaScript eklerken, Intlayer için bu +0.3 KB'dir. Ekstra bir çalışma olmadan, next-intl her sayfayla birlikte diğer sayfaların dizgilerinin yaklaşık %90'ını gönderir. next-intl ile %0 sızıntıya ulaşmak ad alanı kapsamlandırması ve sayfa başına pick(messages, [...]) gerektirir. Intlayer, derleyicisi içeriği bileşen başına kapsamlandırdığı için varsayılan olarak %0'a ulaşır. Intlayer çıktısıyla next-intl API'sini korumak istiyorsanız, @intlayer/next-intl bağdaştırıcısı orijinalin 153.6 KB değerine karşılık sayfa başına 147.5 KB olarak ölçülmüştür.

    Kısaca

    • next-intl - Next.js topluluk standardı. Dil başına merkezi JSON sözlükleri, tam ICU MessageFormat desteği ve Next.js istek işleme ile yönlendirme mekanizmasına derin entegrasyon.
    • Intlayer - Bileşen odaklı içerik modeli. .content.ts dosyaları doğrudan bileşenlerin yanında bulunur, derleme zamanı derleyicisi bunları bileşen ve dil başına tree-shake ve tembel yükleme yapar, katı TypeScript tiplerini otomatik üretir.
    KütüphaneGitHub YıldızlarıToplam CommitSon Commitİlk SürümNPM SürümüNPM İndirmeleri
    aymericzip/intlayerGitHub Repo starsGitHub commit activityLast CommitNisan 2024npmnpm downloads
    amannn/next-intlGitHub Repo starsGitHub commit activityLast CommitMart 2021npmnpm downloads
    Rozetler otomatik olarak güncellenir.

    Özellik karşılaştırması

    ÖzellikIntlayer (react-intlayer / next-intlayer)next-intl (next-intl / use-intl)
    Bileşenlerin yanında çeviriler✅ Evet, .content.ts her bileşenin hemen yanında bulunur❌ messages/ dizininde merkezi JSON sözlükleri
    TypeScript entegrasyonu✅ İçerikten otomatik üretilen katı tipler⚠️ Manuel global.d.ts kurulumuyla desteklenir
    Eksik çeviri tespiti✅ TypeScript hatası + derleme zamanı hatası/uyarısı⚠️ Çalışma zamanında eksik anahtarı döndürür veya yapılandırmaya göre hata fırlatır
    Zengin içerik (JSX / Markdown / bileşenler)✅ Doğrudan destek⚠️ Eşleme bileşenleri ile t.rich() üzerinden
    ICU MessageFormat desteği⚠️ Geliştirilmekte✅ Evet, tam ICU desteği
    Eşzamanlı sunucu bileşenleri✅ next-intlayer/server altındaki useIntlayer alt sunucu bileşenlerinde çalışır❌ Asenkron sunucu ebeveyninden props yoluyla çevirilerin aktarılmasını gerektirir
    Tree-shaking✅ Bileşen ve dil başına derleyici tarafından otomatik⚠️ Ad alanlarını manuel bölmeyi ve pick() kullanmayı gerektirir
    Tembel yükleme (Lazy loading)✅ Tek satır yapılandırma (importMode: 'dynamic')⚠️ getRequestConfig içinde manuel dinamik import gerektirir
    Görsel Düzenleyici / CMS✅ Ücretsiz Görsel Düzenleyici + isteğe bağlı CMS❌ Yok
    Yapay zeka destekli çeviri✅ Yerleşik, kendi sağlayıcı anahtarlarınızı kullanır❌ Yok
    MCP sunucusu ve Ajan Becerileri✅ Evet❌ Yok

    Karşılaştırmalı test

    Neler ölçüldü?

    Benchmark Bloom test paketi, her kütüphane ile aynı uygulamayı derler: 10 sayfa (home, about, blog, careers, contact, FAQ, pricing, products, settings, team), 10 dil (en, fr, es, de, it, pt, zh, ja, ko, ru), özdeş bileşenler ve özdeş içerik. Sayfalar en ve fr dillerinde ölçülür. Her kütüphane dört yükleme stratejisi ile test edilmiştir:

    StratejiAçıklamaKimler kullanır
    staticHer dil ve her sayfa baştan paketlenir ve yüklenirHızlı prototipler, yapay zeka kodları
    dynamicYalnızca etkin dil yüklenir, ancak tüm sayfalar birlikte gelirProjelerin büyük çoğunluğu
    scoped-staticRota başına ad alanları, tembel yükleme yokNadir
    scoped-dynamicRota başına ad alanları + tembel yükleme. Yalnızca geçerli dilin geçerli sayfası iletilirKatı performans bütçesi olan uygulamalar

    Intlayer'ın "scoped" varyantı yoktur: derleyici içeriği otomatik olarak bileşen başına sınırlar, bu nedenle static ve dynamic satırları zaten kapsamlandırılmıştır.

    Her derleme için şunlar kaydedilir:

    • Kütüphane boyutu (Lib size): Yalnızca i18n kütüphanesini içe aktaran boş bir bileşenin gzip boyutu.
    • Sayfa JS (Page JS): Sayfa başına indirilen gzip sıkıştırmalı JavaScript.
    • Dil sızıntısı % (Locale leak %): Kullanıcının görüntülemediği bir dile ait dizgilerin oranı.
    • Sayfa sızıntısı % (Page leak %): Kullanıcının üzerinde bulunmadığı bir sayfaya ait dizgilerin oranı.
    • Bileşen ortalaması (Component avg): Yalıtılmış olarak derlenen her bileşenin ortalama gzip boyutu.
    • E2E tepkisellik: Dil değişiminden DOM'daki html[lang] güncellenmesine kadar geçen süre.
    • Hidrasyon: React hidrasyon aşamasının süresi.
    Aşağıdaki veriler next-intl 4.14.2 ve intlayer 9.5.1 ile 2026-09-12 tarihindeki çalıştırmadan alınmıştır.

    Next.js (App Router) Sonuçları

    İlgilendiğiniz metrikleri ve kütüphaneleri seçin:

    Metrik

    Dinamik JSON yükleme

    Çevirileri çalışma zamanında geç yükler

    Kapsamlı JSON (ad alanı oluşturma)

    Sayfa başına çeviri ad alanları

    Bu metrik nedir?

    Uluslararasılaştırma kitaplığı paketinin toplam gzip sıkıştırılmış boyutu. Sadece ağaç sallama (tree-shaking) ve küçültme (minification) sonrası sağlayıcı ve içerik getirme mantığını içerir.

    Neden önemlidir?

    Daha küçük bir kitaplık boyutu, başlangıç JavaScript yükünü azaltarak istemci tarafında daha hızlı indirme ve yürütme sürelerine yol açar.

    Olarak gör

    KütüphaneStratejiKütüphane Boyutu (gz)Ort. Sayfa JS (gz)Dil SızıntısıSayfa SızıntısıOrt. Bileşen (gz)E2E TepkisellikHidrasyon
    Temel uygulama (i18n yok)-0.0 KB141.0 KB0.0%0.0%0.9 KB13.4 ms11.8 ms
    next-intlstatic14.7 KB153.6 KB4.2%89.8%21.8 KB16.0 ms14.7 ms
    next-intldynamic14.7 KB153.6 KB9.7%89.9%21.8 KB15.6 ms14.8 ms
    next-intlscoped-static14.7 KB153.6 KB0.0%0.0%80.1 KB17.9 ms17.4 ms
    next-intlscoped-dynamic14.7 KB153.6 KB0.0%0.0%22.9 KB17.8 ms16.8 ms
    next-intlayerstatic5.5 KB141.3 KB0.0%0.0%8.5 KB15.5 ms16.9 ms
    next-intlayerdynamic5.5 KB141.3 KB0.0%0.0%6.9 KB15.3 ms15.9 ms
    @intlayer/next-intl (uyumlu)static8.0 KB147.5 KB0.0%0.0%8.1 KB14.5 ms12.8 ms
    @intlayer/next-intl (uyumlu)dynamic8.0 KB148.7 KB0.0%0.0%8.1 KB11.7 ms12.8 ms

    Sonuçlar nasıl okunmalı?

    • Çalışma zamanı maliyeti. Temel uygulama sayfa başına 141.0 KB'dir. next-intl bunu 153.6 KB'ye çıkarırken (her sayfada +12.6 KB gzip), Intlayer yalnızca 141.3 KB (+0.3 KB) yer kaplar.
    • İçerik sızıntısı. En yaygın kurulumlarda (static ve dynamic), next-intl tüm en.json istemci sağlayıcısına girdiği için her sayfada diğer sayfaların içeriğinin yaklaşık %90'ını gönderir. Bunu %0'a indirmek zahmetli manuel ad alanı ayrımı gerektirir; Intlayer ise bunu varsayılan olarak sunar.
    • Bileşen boyutu. useTranslations() çağıran bir bileşen ortalama 21.8 KB derlenirken, useIntlayer() kullanan aynı bileşen sadece 6.9 KB tutar.
    Tüm kütüphaneler ve stratejiler için tam tablo, Next.js kıyaslama raporunda.

    TanStack Start (use-intl) Sonuçları

    use-intl, next-intl'in framework bağımsız çekirdeğidir. Aynı API, aynı mesaj formatı. TanStack Start üzerinde intlayer ile karşılaştırmak, denklemin Next.js'e özgü kısımlarını ortadan kaldırır.

    KütüphaneStratejiKütüphane Boyutu (gz)Ort. Sayfa JS (gz)Dil SızıntısıSayfa SızıntısıOrt. Bileşen (gz)E2E Tepkisellik
    Temel uygulama (i18n yok)-0.0 KB111.0 KB0.0%0.0%0.7 KB8.1 ms
    use-intlstatic14.1 KB179.8 KB50.0%89.8%76.0 KB6.7 ms
    use-intldynamic14.1 KB119.4 KB0.0%89.8%75.9 KB7.0 ms
    use-intlscoped-static14.1 KB128.7 KB0.0%0.0%87.1 KB20.9 ms
    use-intlscoped-dynamic14.1 KB128.7 KB0.0%0.0%87.1 KB13.3 ms
    intlayerstatic5.0 KB125.8 KB50.0%0.0%8.1 KB3.2 ms
    intlayerdynamic5.0 KB118.6 KB0.0%0.0%6.3 KB3.6 ms
    @intlayer/use-intl (uyumlu)dynamic7.3 KB129.7 KB0.0%0.0%9.3 KB8.7 ms

    Sonuçlar nasıl okunmalı?

    • Basit use-intl kurulumu, temel uygulamaya göre sayfa başına 68.8 KB daha fazla JS iletir.
    • dynamic modda use-intl 119.4 KB değerine inse de %89.8 sayfa sızıntısını sürdürür.
    • Mimari fark en çok bileşen boyutunda göze çarpar: use-intl ile 76-87 KB, Intlayer ile 6-8 KB.
    • Dil değiştirme hızı Intlayer ile 2-4 kat daha seridir (3 ms vs 7-21 ms).
    Tam tablo TanStack Start kıyaslama raporunda.

    Neden bu fark var? Merkezi kataloglar vs derlenmiş sözlükler

    Centralized catalogs versus per-component dictionaries

    next-intl geleneksel modeli izler: dil başına bir JSON, getRequestConfig içinde yüklenir, NextIntlClientProvider'a aktarılır ve t("namespace.key") ile okunur.

    bash
    .
    ├── messages
    │   ├── en.json
    │   └── fr.json
    └── src
        ├── i18n
        │   ├── request.ts
        │   └── routing.ts
        ├── middleware.ts
        └── app
            └── [locale]
                ├── layout.tsx
                └── about
                    └── page.tsx
    

    Çalışma zamanı bir sayfanın hangi anahtarları kullanacağını bilemez, bu yüzden tüm kataloğu göndermek en güvenli yoldur.

    Bunu başaramamanın maliyeti aynı anda iki eksende büyür: sayfalar ve yerel ayarlar:

    Theoretical content leakage by architecture

    Intlayer bu sorumluluğu tersine çevirir. İçerik doğrudan ilgili bileşenin yanında tanımlanır:

    bash
    .
    ├── intlayer.config.ts
    └── src
        ├── middleware.ts
        └── app
            └── [locale]
                ├── layout.tsx
                └── about
                    ├── page.tsx
                    └── page.content.ts
        └── components
            └── Counter
                ├── index.tsx
                └── index.content.ts
    

    Derleme sırasında derleyici, hangi bileşenin hangi sözlüğü içe aktardığını tespit eder ve yalnızca etkin dil için gereken sözlükleri paketler.

    dynamic satırının verilerini elde etmek için intlayer.config.ts dosyasında dictionary.importMode: 'dynamic' ayarını yapın. Paket optimizasyonu belgesine göz atın.

    Geliştirici deneyimi

    İstemci bileşeni (Client component)

    messages/en.json
    {
      "counter": {
        "label": "Counter",
        "increment": "Increment"
      }
    }
    
    src/components/ClientCounter.tsx
    "use client";
    
    import { useState } from "react";
    import { useTranslations, useFormatter } from "next-intl";
    
    export const Counter = () => {
      const t = useTranslations("counter");
      const format = useFormatter();
      const [count, setCount] = useState(0);
    
      return (
        <div>
          <p>{format.number(count)}</p>
          <button aria-label={t("label")} onClick={() => setCount((c) => c + 1)}>
            {t("increment")}
          </button>
        </div>
      );
    };
    
    Bu bileşeni oluşturan her sayfada NextIntlClientProvider'a iletilen mesajlara counter ad alanını eklemeyi unutmayın.
    src/components/Counter/index.content.ts
    import { t, type Dictionary } from "intlayer";
    
    const counterContent = {
      key: "counter",
      content: {
        label: t({ en: "Counter", fr: "Compteur" }),
        increment: t({ en: "Increment", fr: "Incrémenter" }),
      },
    } satisfies Dictionary;
    
    export default counterContent;
    
    src/components/Counter/index.tsx
    "use client";
    
    import { useState } from "react";
    import { useIntlayer } from "next-intlayer";
    import { useNumber } from "next-intlayer/format";
    
    export const Counter = () => {
      const { label, increment } = useIntlayer("counter");
      const number = useNumber();
      const [count, setCount] = useState(0);
    
      return (
        <div>
          <p>{number(count)}</p>
          <button aria-label={label} onClick={() => setCount((c) => c + 1)}>
            {increment}
          </button>
        </div>
      );
    };
    

    Sayfada kayıt edilecek hiçbir şey yok: bileşen kendi içeriğini kendisi getirir.

    Eşzamanlı sunucu bileşenleri

    Tasarım sistemi bileşenleri (navbar, footer, kartlar) genellikle istemci bileşenlerinin alt öğeleri olarak işlenen sunucu bileşenleridir, dolayısıyla async olamazlar.

    src/components/ServerCounter.tsx
    type ServerCounterProps = {
      t: (key: string) => string;
      formattedCount: string;
    };
    
    export const ServerCounter = ({ t, formattedCount }: ServerCounterProps) => (
      <div>
        <p>{formattedCount}</p>
        <button aria-label={t("label")}>{t("increment")}</button>
      </div>
    );
    

    Sayfanın await getTranslations("counter") ve await getFormatter() çalıştırması, ardından sonuçları props olarak aşağı aktarması gerekir. Bileşen artık bağımsız değildir.

    src/components/ServerCounter.tsx
    import { useIntlayer } from "next-intlayer/server";
    import { useNumber } from "next-intlayer/server/format";
    
    export const ServerCounter = ({ count }: { count: number }) => {
      const { label, increment } = useIntlayer("counter");
      const number = useNumber();
    
      return (
        <div>
          <p>{number(count)}</p>
          <button aria-label={label}>{increment}</button>
        </div>
      );
    };
    

    Meta veriler (Metadata)

    src/app/[locale]/about/page.tsx
    import type { Metadata } from "next";
    import { getTranslations } from "next-intl/server";
    import { routing } from "@/i18n/routing";
    
    const localizedPath = (locale: string, path: string) =>
      locale === routing.defaultLocale ? path : `/${locale}${path}`;
    
    export const generateMetadata = async ({
      params,
    }: {
      params: Promise<{ locale: string }>;
    }): Promise<Metadata> => {
      const { locale } = await params;
      const t = await getTranslations({ locale, namespace: "about" });
    
      const languages = Object.fromEntries(
        routing.locales.map((l) => [l, localizedPath(l, "/about")])
      );
    
      return {
        title: t("title"),
        description: t("description"),
        alternates: {
          canonical: localizedPath(locale, "/about"),
          languages: { ...languages, "x-default": "/about" },
        },
      };
    };
    
    src/app/[locale]/about/page.tsx
    import { getIntlayer, getMultilingualUrls } from "intlayer";
    import type { Metadata } from "next";
    import type { LocalPromiseParams } from "next-intlayer";
    
    export const generateMetadata = async ({
      params,
    }: LocalPromiseParams): Promise<Metadata> => {
      const { locale } = await params;
      const metadata = getIntlayer("about-metadata", locale);
      const multilingualUrls = getMultilingualUrls("/about");
    
      return {
        ...metadata,
        alternates: {
          canonical: multilingualUrls[locale as keyof typeof multilingualUrls],
          languages: { ...multilingualUrls, "x-default": "/about" },
        },
      };
    };
    

    next-intl API'sini koruyun, Intlayer verimini elde edin

    Yukarıdaki performans verilerine ulaşmak için bileşenlerinizi sıfırdan yazmanız gerekmez. @intlayer/next-intl doğrudan tak-çalıştır bir adaptördür: useTranslations, getTranslations, useFormatter, t.rich() ve ICU çoğul yapılarını korur, bunları Intlayer derleyicisi tarafından derlenen Intlayer sözlüklerinden sunar.

    next.config.ts
    import type { NextConfig } from "next";
    import { createNextIntlPlugin } from "@intlayer/next-intl/plugin";
    
    const withIntlayer = createNextIntlPlugin();
    
    const nextConfig: NextConfig = {};
    
    export default withIntlayer(nextConfig);
    

    Testlerde, aynı uygulamanın uyumluluk derlemesi, uygulama koduna dokunulmadan sayfa başına 153.6 KB'den 147.5 KB'ye, bileşen başına 21.8 KB'den 8.1 KB'ye ve sayfa sızıntısında %90'dan %0'a geriledi. Mevcut messages/{locale}.json dosyalarınız JSON eşitleme eklentisi ile tek doğruluk kaynağı olarak kalabilir.

    Ayrıntılı adımlar için next-intl geçiş kılavuzuna göz atın.

    Hangisi ne zaman tercih edilmeli?

    Next.js için ekosistem standardını istiyorsanız, ICU MessageFormat'a güveniyorsanız, uygulamanız küçük veya orta ölçekliyse veya merkezi JSON bekleyen bir çeviri platformuyla (Crowdin, Phrase, Lokalise...) entegre oluyorsanız. Performans önemliyse katalogları ad alanlarına bölmek ve sayfa başına pick() ile mesaj seçmek için zaman ayırın.

    Bileşen kapsamlı içerik, katı TypeScript, derleme zamanı eksik anahtar hataları, zahmetsiz tree-shaking ve lazy loading, eşzamanlı sunucu bileşenleri ve yerleşik düzenleme araçları (Görsel Düzenleyici, CMS, yapay zeka çevirisi, MCP sunucusu) istiyorsanız. Özellikle büyük, modüler kod tabanları ve tasarım sistemleri için uygundur.

    Zaten next-intl kullanıyorsanız ve kodu yeniden yazmadan paket boyutu kazanımı istiyorsanız. Uyumluluk bağdaştırıcısı içe aktarmalarınızı ve messages/{locale}.json dosyanızı tek gerçek kaynak olarak korur. next-intl vs @intlayer/next-intl içinde yan yana ölçülmüştür.

    SSS

    Render sırasında değil. Fark tarayıcıya ne gönderildiğindedir: next-intl her sayfada +12.6 KB gzip çalışma zamanı maliyeti getirir ve standart kurulumlarda her sayfayla birlikte yabancı sayfa dizelerinin yaklaşık %90'ını gönderir. Dil değiştirme ve hidrasyon Next.js'de benzerdir (15-18 ms); TanStack Start'ta use-intl, Intlayer'ın 3-4 ms'sine karşılık 7-21 ms sürer.

    Evet, scoped-dynamic kurulumuyla: messages/{locale}.json dosyasını rota başına bir ad alanına bölün, ardından her sayfada pick(messages, [...]) kullanın ve bileşenler taşındıkça bu eşlemeyi doğru tutun. Kıyaslamadaki scoped-* satırları tam olarak bu çalışmayı temsil eder. Intlayer derleyici içeriği bileşen bazında kapsadığı için buna gerek kalmadan %0'a ulaşır. Bkz. paket optimizasyonu.

    Hayır. @intlayer/next-intl, useTranslations, getTranslations, useFormatter, t.rich(), ICU çoğulları ve gezinme yardımcılarını korur ve bunları derlenmiş sözlüklerden sunar. next.config.ts içinde tek satırlık eklenti. next-intl geçiş kılavuzunda adım adım anlatılmıştır.

    Yerel API'de ICU desteği üzerinde çalışılmaktadır. Uyumluluk bağdaştırıcıları (@intlayer/next-intl, @intlayer/use-intl) ICU'yu çalıştırır: çoğullar, select, selectordinal, # ve {ts, date, long} Intlayer'ın ICU çözücüsünden geçer. Ayrıntılar için ICU mesaj formatı sayfasına bakın.

    Evet. JSON senkronizasyon eklentisi bunları okur, en üst düzey anahtarlarını sözlüklere böler ve CLI veya CMS bunları güncellediğinde çevirileri aynı dosyalara yazar. Çevirmenlerinizin iş akışı değişmez.

    İlgili karşılaştırmalar

    Aynı kıyaslama, diğer kütüphaneler:

    next-intl hakkında daha fazlası:

    Referans belgeleri:

    Bu kütüphanelerin nereden geldiğini anlamak için JavaScript i18n tarihini okuyun.

    GitHub Yıldızları

    GitHub yıldızları, bir projenin popülaritesinin ve topluluk güveninin önemli bir göstergesidir.

    Yıldız Geçmişi Grafiği

    Commit etkinliği

    Yıldızlar popülerliği gösterir. Commit sayısı ise bir projeye ne kadar emek verildiğini gösterir. Bu yazı yazıldığında Intlayer yaklaşık 7.500 commit içeriyor; bu, burada karşılaştırılan kütüphanelerin çoğundan fazla ve next-intl ya da next-i18next kütüphanesinin yaklaşık 5 katı.

    • amannn/next-intl
    • aymericzip/intlayer

    Varsayılan daldaki commit sayısı, kaynak: GitHub API.

    Intlayer bir monorepo olduğundan bu sayı her framework paketini, CLI'yi ve dokümantasyonu kapsar. Commit sayısını kalitenin değil, etkinliğin bir göstergesi olarak okuyun.

    npm indirmeleri

    • next-intl
    • next-intlayer

    Kaynak: npm kayıt defteri indirme API’si.

    İndirme sayıları en iyi çözümleri değil, en eski çözümleri ödüllendirir. Yıllar önce yayımlanmış bir kütüphane, onu o zaman seçen her proje, her CI çalışması ve ona bağımlı her paket tarafından hâlâ kurulur. Bu sayı yeni bir tercihten çok ataleti ölçer.

    Yapay zekâ asistanları bu etkiyi büyütür. next-intl, i18next ve vue-i18n eğitildikleri kodun her yerinde bulunduğu için, alternatifleri karşılaştırmadan bunları varsayılan olarak önerirler. Her öneri indirme sayısını artırır, bu da bir sonraki öneriyi besler. İndirme sayısına değil, benchmark sonuçlarına göre karşılaştırın.

    Sonuç

    next-intl, Next.js üzerinde güvenilir ve sağlam bir kütüphanedir. Ancak merkezi katalog modeli optimizasyon yükünü geliştiriciye bırakır: basit bir kurulum diğer sayfaların içeriğinin yaklaşık %90'ını sızdırır ve çalışma zamanının kendisi her sayfada +12.6 KB gzip ekler.

    Intlayer bu yükü derleyiciye devreder. Bileşen başına sözlükler, dil başına tembel yükleme ve gereksiz içeriklerin temizlenmesi otomatik derleme çıktısıdır. Aynı uygulamadaki sonuç: sayfa başına +0.3 KB, %0 sızıntı, 3 kat daha küçük bileşenler ve TanStack Start üzerinde 2-4 kat daha hızlı dil değişimi.

    Tüm ham veriler, test uygulamaları ve betikler Benchmark Bloom deposunda yer almaktadır.

    Daha fazla ayrıntı için 'Neden Intlayer?' belgesine bakın.

    Yorumlar

    Henüz yorum yok. Düşüncelerinizi paylaşan ilk kişi olun.

    İlgili Gönderiler

    Son Gönderiler