Creation:2024-08-14Last update:2026-05-31

    Neden Intlayer'ı Düşünmelisiniz?

    Intlayer Nedir?

    Intlayer, JavaScript geliştiricileri için özel olarak tasarlanmış bir uluslararasılaştırma (i18n) kütüphanesidir. İçeriğinizi kodunuzun her yerinde bildirmenize olanak tanır. Çok dilli içerik bildirimlerini yapılandırılmış sözlüklere dönüştürerek kodunuza kolayca entegre edilmesini sağlar. TypeScript kullanan Intlayer, geliştirme sürecinizi daha güçlü ve verimli hale getirir.

    Neden Alternatifler Yerine Intlayer?

    next-intl veya i18next gibi ana çözümlerle karşılaştırıldığında, Intlayer entegre optimizasyonlarla gelen bir çözümdür:

    Sayfalarınıza devasa JSON dosyaları yüklemek yerine, yalnızca kesinlikle gerekli olan içeriği yükleyin. Intlayer, paket ve sayfa boyutlarınızı %50'ye kadar azaltmaya yardımcı olur.

    Uygulamanızın içeriğini bileşen düzeyinde sınırlandırmak, büyük ölçekli uygulamalar için bakımı kolaylaştırır. Tüm içerik kod tabanınızı gözden geçirme zihinsel yükü olmadan tek bir özellik klasörünü kopyalayabilir veya silebilirsiniz. Ek olarak Intlayer, içeriğinizin doğruluğunu sağlamak için tamamen tiplenmiştir (fully typed).

    İçeriği bileşenle aynı yerde konumlandırmak (Co-location), Büyük Dil Modellerinin (LLM'ler) ihtiyaç duyduğu bağlamı azaltır. Intlayer ayrıca, AI ajanları için geliştirici deneyimini (DX) daha da sorunsuz hale getirmek için eksik çevirileri test eden bir CLI, LSP, MCP ve agent skills gibi bir araç paketiyle birlikte gelir.

    Intlayer, diğer i18n çözümlerinin sahip olmadığı Markdown desteği, harici içerik çekme, dosya içeriği yükleme, canlı içerik güncelleme, görsel editör ve daha fazlası gibi bir dizi ek özellik sunar.

    AI sağlayıcınızın maliyeti üzerinden seçtiğiniz LLM'yi kullanarak CI/CD hattınızda otomatik çeviri yapın. Intlayer ayrıca içerik çıkarmayı otomatikleştirmek için bir derleyici ve arka planda çeviri yapmanıza yardımcı olacak bir web platformu sunar.

    Büyük JSON dosyalarını bileşenlere bağlamak performans ve tepkisellik sorunlarına yol açabilir. Intlayer, derleme zamanında (build time) içerik yüklemenizi optimize eder.

    Bir i18n çözümünden daha fazlası olan Intlayer, çevirmenler, metin yazarları ve diğer ekip üyeleriyle işbirliğini sorunsuz hale getirmek için kendi kendine barındırılabilen bir görsel editör ve tam bir CMS sağlar. İçerikler yerel ve/veya uzaktan saklanabilir.

    Uygulamanızın farklı bölümleri için farklı framework'ler kullanıyorsanız (örn. React, React-native, Vue, Angular, Svelte vb.), Intlayer tüm ana frontend framework'lerinde ortak bir sözdizimi ve uygulama kullanmanın bir yolunu sunar. Ayrıca içerik bildiriminizi tasarım sisteminiz, uygulamalarınız, backend'iniz vb. arasında paylaşabileceksiniz.

    Intlayer Neden Oluşturuldu?

    Intlayer, next-intl, react-i18next, react-intl, next-i18next, react-intl ve vue-i18n gibi tüm yaygın i18n kütüphanelerini etkileyen ortak bir sorunu çözmek için oluşturuldu.

    Tüm bu çözümler, içeriğinizi listelemek ve yönetmek için merkezi bir yaklaşım benimser. Örneğin:

    bash
    .├── locales│   ├── en.json│   ├── es.json│   └── fr.json├── i18n.ts└── src    └── components        └── MyComponent            └── index.tsx

    Veya burada namespace kullanarak:

    bash
    .├── locales│   ├── en│   │  ├── footer.json│   │  └── navbar.json│   ├── fr│   │  ├── footer.json│   │  └── navbar.json│   └── es│      ├── footer.json│      └── navbar.json├── i18n.ts└── src    └── components        └── MyComponent            └── index.tsx

    Bu tür bir mimari, geliştirme sürecini yavaşlatır ve kod tabanının bakımını birkaç nedenden dolayı daha karmaşık hale getirir:

    1. Oluşturulan her yeni bileşen için şunları yapmalısınız:

      • locales klasöründe yeni kaynağı/namespace'i oluşturun
      • Sayfanıza yeni namespace'i import etmeyi unutmayın
      • İçeriğinizi çevirin (genellikle AI sağlayıcılarından manuel olarak kopyala/yapıştır yapılarak yapılır)
    2. Bileşenlerinizde yapılan herhangi bir değişiklik için şunları yapmalısınız:

      • İlgili kaynağı/namespace'i arayın (bileşenden uzakta)
      • İçeriğinizi çevirin
      • İçeriğinizin her dil için güncel olduğundan emin olun
      • Namespace'inizin kullanılmayan anahtarlar/değerler içermediğini doğrulayın
      • JSON dosyalarınızın yapısının tüm diller için aynı olduğundan emin olun

    Bu çözümleri kullanan profesyonel projelerde, içeriğinizin çevirisini yönetmeye yardımcı olmak için genellikle yerelleştirme platformları kullanılır. Ancak bu, büyük projeler için hızla maliyetli hale gelebilir.

    Bu sorunu çözmek için Intlayer, içeriğinizi bileşen başına sınırlandıran ve CSS (styled-components), tipler, dokümantasyon (storybook) veya birim testlerinde (jest) sıkça yaptığımız gibi içeriğinizi bileşeninize yakın tutan bir yaklaşım benimser.

    bash
    .└── components    └── MyComponent        ├── index.content.ts        ├── index.test.tsx        ├── index.stories.tsx        └── index.tsx
    ./components/MyComponent/index.content.ts
    import { t, type Dictionary } from "intlayer";
    
    const componentExampleContent = {
      key: "component-example",
      content: {
        myTranslatedContent: t({
          en: "Hello World",
          es: "Hola Mundo",
          fr: "Bonjour le monde",
        }),
      },
    } satisfies Dictionary;
    
    export default componentExampleContent;
    ./components/MyComponent/index.tsx
    import { useIntlayer } from "react-intlayer";
    
    export const ComponentExample = () => {
      const { myTranslatedContent } = useIntlayer("component-example");
    
      return <span>{myTranslatedContent}</span>;
    };

    Bu yaklaşım şunları yapmanızı sağlar:

    1. Geliştirme hızını artırın

      • .content.{{ts|mjs|cjs|json}} dosyaları bir VSCode eklentisi kullanılarak oluşturulabilir
      • IDE'nizdeki AI otomatik tamamlama araçları (GitHub Copilot gibi) içeriğinizi bildirmenize yardımcı olarak kopyala/yapıştır işlemlerini azaltabilir
    2. Kod tabanınızı temizleyin

      • Karmaşıklığı azaltın
      • Bakım kolaylığını artırın
    3. Bileşenlerinizi ve bunlarla ilgili içeriği daha kolay kopyalayın (Örnek: giriş/kayıt bileşenleri vb.)

      • Diğer bileşenlerin içeriğini etkileme riskini sınırlayarak
      • İçeriğinizi harici bağımlılıklar olmadan bir uygulamadan diğerine kopyalayıp yapıştırarak
    4. Kullanılmayan bileşenler için kod tabanınızı kullanılmayan anahtarlarla/değerlerle kirletmekten kaçının

      • Bir bileşeni kullanmazsanız, Intlayer onunla ilgili içeriği import etmez
      • Bir bileşeni silerseniz, aynı klasörde bulunacağı için ilgili içeriği silmeyi daha kolay hatırlarsınız
    5. AI ajanlarının çok dilli içeriğinizi bildirmesi için muhakeme maliyetini azaltın

      • AI ajanı, içeriğinizi nerede uygulayacağını bilmek için tüm kod tabanınızı taramak zorunda kalmayacak
      • Çeviriler, IDE'nizdeki AI otomatik tamamlama araçları (GitHub Copilot gibi) tarafından kolayca yapılabilir
    6. Yükleme performansını optimize edin

      • Bir bileşen lazy-load yüklenirse, ilgili içeriği de aynı anda yüklenecektir

    Intlayer'ın Ek Özellikleri

    Özellik Açıklama
    Feature Çoklu Framework Desteği

    Intlayer; Next.js, React, Vite, Vue.js, Nuxt, Preact, Express ve daha fazlası dahil olmak üzere tüm büyük framework'ler ve kütüphanelerle uyumludur.
    Feature JavaScript Destekli İçerik Yönetimi

    İçeriğinizi verimli bir şekilde tanımlamak ve yönetmek için JavaScript'in esnekliğinden yararlanın.

    - İçerik bildirimi
    Feature Derleyici

    Intlayer Derleyicisi, bileşenlerden içeriği otomatik olarak çıkarır ve sözlük dosyalarını oluşturur.

    - Derleyici
    Feature Dil Başına İçerik Bildirim Dosyası

    Otomatik üretimden önce içeriğinizi bir kez bildirerek geliştirmenizi hızlandırın.

    - Dil Başına İçerik Bildirim Dosyası
    Feature Tip Güvenlikli Ortam

    İçerik tanımlarınızın ve kodunuzun hatasız olmasını sağlamak için TypeScript'ten yararlanın ve aynı zamanda IDE otomatik tamamlamasından yararlanın.

    - TypeScript yapılandırması
    Feature Basitleştirilmiş Kurulum

    Minimum yapılandırma ile hızla kurun ve çalıştırın. Uluslararasılaştırma, yönlendirme, AI, derleme ve içerik işleme ayarlarını kolaylıkla yapın.

    - Next.js entegrasyonunu keşfedin
    Feature Basitleştirilmiş İçerik Çekme

    Her içerik parçası için t fonksiyonunuzu çağırmanıza gerek yok. Tek bir hook kullanarak tüm içeriğinizi doğrudan çekin.

    - React entegrasyonu
    Feature Tutarlı Server Component Uygulaması

    Next.js server component'leri için mükemmel şekilde uygundur; hem client hem de server component'leri için aynı uygulamayı kullanın, t fonksiyonunuzu her server component'e aktarmanıza gerek kalmaz.

    - Server Component'leri
    Feature Düzenli Kod Tabanı

    Kod tabanınızı daha düzenli tutun: Aynı klasörde 1 bileşen = 1 sözlük. İlgili bileşenlerine yakın çeviriler, bakım kolaylığını ve netliği artırır.

    - Intlayer nasıl çalışır
    Feature Gelişmiş Yönlendirme

    Next.js, React, Vite, Vue.js vb. için karmaşık uygulama yapılarına sorunsuz bir şekilde uyum sağlayan tam uygulama yönlendirme desteği.

    - Next.js entegrasyonunu keşfedin
    Feature Markdown Desteği

    Gizlilik politikaları, dokümantasyon vb. gibi çok dilli içerikler için yerel dosyaları ve uzak Markdown'ı içe aktarın ve yorumlayın. Kodunuzda Markdown meta verilerini yorumlayın ve erişilebilir hale getirin.

    - İçerik dosyaları
    Feature Ücretsiz Görsel Editör ve CMS

    İçerik yazarları için ücretsiz bir görsel editör ve CMS mevcuttur, bu da bir yerelleştirme platformuna olan ihtiyacı ortadan kaldırır. Git kullanarak içeriğinizi senkronize tutun veya CMS ile tamamen veya kısmen dışsallaştırın.

    - Intlayer Editörü
    - Intlayer CMS
    Feature Tree-shakable İçerik

    Nihai paket boyutunu azaltan tree-shakable içerik. İçeriği bileşen başına yükler, kullanılmayan içerikleri paketinizden hariç tutar. Uygulama yükleme verimliliğini artırmak için lazy loading desteği sunar.

    - Uygulama derleme optimizasyonu
    Feature Statik Oluşturma (Static Rendering)

    Statik Oluşturmayı engellemez.

    - Next.js entegrasyonu
    Feature AI Destekli Çeviri

    Kendi AI sağlayıcınızı/API anahtarınızı kullanarak Intlayer'ın gelişmiş AI destekli çeviri araçlarıyla web sitenizi tek bir tıklamayla 231 dile dönüştürün.

    - CI/CD entegrasyonu
    - Intlayer CLI
    - Otomatik Doldurma
    Feature MCP Sunucu Entegrasyonu

    IDE otomasyonu için bir MCP (Model Context Protocol) sunucusu sağlayarak, doğrudan geliştirme ortamınızda sorunsuz içerik yönetimi ve i18n iş akışları sağlar.

    - MCP Sunucusu
    Feature VSCode Eklentisi

    Intlayer, içeriğinizi ve çevirilerinizi yönetmenize, sözlüklerinizi derlemenize, içeriğinizi çevirmenize ve daha fazlasına yardımcı olacak bir VSCode eklentisi sağlar.

    - VSCode Eklentisi
    Feature Birlikte Çalışabilirlik

    react-i18next, next-i18next, next-intl ve react-intl ile birlikte çalışabilirliğe izin verir.

    - Intlayer ve react-intl
    - Intlayer ve next-intl
    - Intlayer ve next-i18next
    Eksik Çevirileri Test Etme (CLI/CI) ✅ CLI: npx intlayer content test (CI dostu denetim)

    Intlayer'ın Diğer Çözümlerle Karşılaştırılması

    Özellik intlayer react-i18next react-intl (FormatJS) lingui next-intl next-i18next vue-i18n
    Bileşenlerin Yakınındaki Çeviriler ✅ Evet, içerik her bileşenle birlikte konumlandırılmıştır ❌ Hayır ❌ Hayır ❌ Hayır ❌ Hayır ❌ Hayır ✅ Evet - Single File Components (SFCs) kullanarak
    TypeScript Entegrasyonu ✅ Gelişmiş, otomatik olarak oluşturulan katı tipler ⚠️ Temel; güvenlik için ekstra yapılandırma ✅ İyi, ancak daha az katı ⚠️ Tip tanımları, yapılandırma gerektirir ✅ İyi ⚠️ Temel ✅ İyi (tipler mevcuttur; anahtar güvenliği kurulum gerektirir)
    Eksik Çeviri Algılama ✅ TypeScript hatası vurgulama ve derleme zamanı hatası/uyarısı ⚠️ Çoğunlukla çalışma zamanında yedek dizeler ⚠️ Yedek dizeler ⚠️ Ekstra yapılandırma gerektirir ⚠️ Çalışma zamanı yedeği ⚠️ Çalışma zamanı yedeği ⚠️ Çalışma zamanı yedeği/uyarıları (yapılandırılabilir)
    Zengin İçerik (JSX/Markdown/bileşenler) ✅ Doğrudan destek ⚠️ Sınırlı / yalnızca enterpolasyon ⚠️ ICU sözdizimi, gerçek JSX değil ⚠️ Sınırlı ❌ Zengin düğümler için tasarlanmamıştır ⚠️ Sınırlı ⚠️ Sınırlı (<i18n-t> aracılığıyla bileşenler, eklentiler aracılığıyla Markdown)
    AI Destekli Çeviri ✅ Evet, birden fazla AI sağlayıcısını destekler. Kendi API anahtarlarınızı kullanarak kullanılabilir. Uygulamanızın bağlamını ve içerik kapsamını dikkate alır ❌ Hayır ❌ Hayır ❌ Hayır ❌ Hayır ❌ Hayır ❌ Hayır
    Görsel Editör ✅ Evet, yerel Görsel Editör + isteğe bağlı CMS; kod tabanı içeriğini dışsallaştırabilir; gömülebilir ❌ Hayır / harici yerelleştirme platformları aracılığıyla kullanılabilir ❌ Hayır / harici yerelleştirme platformları aracılığıyla kullanılabilir ❌ Hayır / harici yerelleştirme platformları aracılığıyla kullanılabilir ❌ No / harici yerelleştirme platformları aracılığıyla kullanılabilir ❌ Hayır / harici yerelleştirme platformları aracılığıyla kullanılabilir ❌ Hayır / harici yerelleştirme platformları aracılığıyla kullanılabilir
    Yerelleştirilmiş Yönlendirme ✅ Evet, yerelleştirilmiş yolları kutudan çıktığı gibi destekler (Next.js ve Vite ile çalışır) ⚠️ Yerleşik değil, eklentiler (örn. next-i18next) veya özel yönlendirici yapılandırması gerektirir ❌ Hayır, yalnızca mesaj biçimlendirme, yönlendirme manuel olmalıdır ⚠️ Yerleşik değil, eklentiler veya manuel yapılandırma gerektirir ✅ Yerleşik, App Router [locale] segmentini destekler ✅ Yerleşik ✅ Yerleşik
    Dinamik Rota Oluşturma ✅ Evet ⚠️ Eklenti/ekosistem veya manuel kurulum ❌ Sağlanmadı ⚠️ Eklenti/manuel ✅ Evet ✅ Evet ❌ Sağlanmadı (Nuxt i18n sağlar)
    Çoğullaştırma ✅ Numaralandırma tabanlı kalıplar ✅ Yapılandırılabilir (i18next-icu gibi eklentiler) ✅ (ICU) ✅ (ICU/messageformat) ✅ İyi ✅ İyi ✅ Yerleşik çoğul kuralları
    Biçimlendirme (tarihler, sayılar, para birimleri) ✅ Optimize edilmiş biçimlendiriciler (arka planda Intl) ⚠️ Eklentiler veya özel Intl kullanımı yoluyla ✅ ICU biçimlendiricileri ✅ ICU/CLI yardımcıları ✅ İyi (Intl yardımcıları) ✅ İyi (Intl yardımcıları) ✅ Yerleşik tarih/sayı biçimlendiricileri (Intl)
    İçerik Biçimi ✅ .tsx, .ts, .js, .json, .md, .txt, (.yaml WIP) ⚠️ .json ✅ .json, .js ⚠️ .po, .json ✅ .json, .js, .ts ⚠️ .json ✅ .json, .js
    ICU desteği ⚠️ WIP ⚠️ Eklenti aracılığıyla (i18next-icu) ✅ Evet ✅ Evet ✅ Evet ⚠️ Eklenti aracılığıyla (i18next-icu) ⚠️ Özel biçimlendirici/derleyici aracılığıyla
    SEO Yardımcıları (hreflang, sitemap) ✅ Yerleşik araçlar: sitemap, robots.txt, meta veriler için yardımcılar ⚠️ Topluluk eklentileri/manuel ❌ Çekirdek değil ❌ Çekirdek değil ✅ İyi ✅ İyi ❌ Çekirdek değil (Nuxt i18n yardımcılar sağlar)
    Ekosistem / Topluluk ⚠️ Daha küçük ama hızlı büyüyor ve duyarlı ✅ En büyük ve olgun ✅ Büyük ⚠️ Daha küçük ✅ Orta boy, Next.js odaklı ✅ Orta boy, Next.js odaklı ✅ Vue ekosisteminde büyük
    Sunucu Tarafı İşleme & Sunucu Bileşenleri ✅ Evet, SSR / React Server Component'leri için kolaylaştırılmış ⚠️ Sayfa düzeyinde desteklenir ancak alt sunucu bileşenleri için bileşen ağacında t-fonksiyonlarını aktarmanız gerekir ⚠️ Ek kurulumla sayfa düzeyinde desteklenir ancak alt sunucu bileşenleri için bileşen ağacında t-fonksiyonlarını aktarmanız gerekir ✅ Desteklenir, kurulum gereklidir ⚠️ Sayfa düzeyinde desteklenir ancak alt sunucu bileşenleri için bileşen ağacında t-fonksiyonlarını aktarmanız gerekir ⚠️ Sayfa düzeyinde desteklenir ancak alt sunucu bileşenleri için bileşen ağacında t-fonksiyonlarını aktarmanız gerekir ✅ Nuxt/Vue SSR aracılığıyla SSR (RSC yok)
    Tree-shaking (yalnızca kullanılan içeriği yükleme) ✅ Evet, Babel/SWC eklentileri aracılığıyla derleme zamanında bileşen başına ⚠️ Genellikle hepsini yükler (namespace'ler/kod ayırma ile iyileştirilebilir) ⚠️ Genellikle hepsini yükler ❌ Varsayılan değil ⚠️ Kısmi ⚠️ Kısmi ⚠️ Kısmi (kod ayırma/manuel kurulum ile)
    Lazy loading ✅ Evet, dil başına / sözlük başına ✅ Evet (örn. talep üzerine backend'ler/namespace'ler) ✅ Evet (bölünmüş dil paketleri) ✅ Evet (dinamik katalog içe aktarmaları) ✅ Evet (rota başına/dil başına), namespace yönetimi gerekir ✅ Evet (rota başına/dil başına), namespace yönetimi gerekir ✅ Evet (eşzamansız dil mesajları)
    Kullanılmayan içeriği temizleme ✅ Evet, derleme zamanında sözlük başına ❌ Hayır, yalnızca manuel namespace bölümlemesi yoluyla ❌ Hayır, beyan edilen tüm mesajlar paketlenir ✅ Evet, kullanılmayan anahtarlar derlemede algılanır ve bırakılır ❌ Hayır, namespace yönetimi ile manuel olarak yönetilebilir ❌ Hayır, namespace yönetimi ile manuel olarak yönetilebilir ❌ Hayır, yalnızca manuel lazy loading yoluyla mümkündür
    Büyük Projelerin Yönetimi ✅ Modülerliği teşvik eder, tasarım sistemine uygundur ⚠️ İyi dosya disiplini gerektirir ⚠️ Merkezi kataloglar büyüyebilir ⚠️ Karmaşıklaşabilir ✅ Kurulum ile modüler ✅ Kurulum ile modüler ✅ Vue Router/Nuxt i18n kurulumu ile modüler

    GitHub Yıldızları

    GitHub yıldızları, bir projenin popülerliğinin, topluluk güveninin ve uzun vadeli alakasının güçlü bir göstergesidir. Teknik kalitenin doğrudan bir ölçüsü olmasa da, kaç geliştiricinin projeyi yararlı bulduğunu, ilerlemesini takip ettiğini ve onu benimseme olasılığının yüksek olduğunu yansıtır. Bir projenin değerini tahmin etmek için yıldızlar, alternatifler arasındaki çekiciliği karşılaştırmaya yardımcı olur ve ekosistem büyümesi hakkında bilgiler sağlar.

    Star History Chart


    Birlikte Çalışabilirlik

    intlayer ayrıca react-intl, react-i18next, next-intl, next-i18next ve vue-i18n namespace'lerinizi yönetmenize yardımcı olabilir.

    intlayer kullanarak içeriğinizi en sevdiğiniz i18n kütüphanesinin biçiminde bildirebilirsiniz ve intlayer, namespace'lerinizi istediğiniz konumda oluşturur (örnek: /messages/{{locale}}/{{namespace}}.json).