Yazar:
    Oluşturma:2025-09-07Son güncelleme:2026-05-31

    Intlayer ile Express backend çevirin

    express-intlayer, Express uygulamaları için güçlü bir uluslararasılaştırma (i18n) ara yazılımıdır ve istemcinin tercihlerine göre yerelleştirilmiş yanıtlar sağlayarak arka uç hizmetlerinizi küresel olarak erişilebilir hale getirmek için tasarlanmıştır.

    Pratik Kullanım Durumları

    • Arka Uç Hatalarını Kullanıcının Dilinde Görüntüleme: Bir hata oluştuğunda, mesajları kullanıcının ana dilinde görüntülemek anlayışı iyileştirir ve hayal kırıklığını azaltır. Bu, tostlar veya modallar gibi ön uç bileşenlerinde gösterilebilecek dinamik hata mesajları için özellikle yararlıdır.

    • Çok Dilli İçerik Alma: Bir veritabanından içerik çeken uygulamalar için uluslararasılaştırma, bu içeriği kullanıcının tercih ettiği dilde sunabilmenizi sağlar. Bu, ürün açıklamaları, makaleler ve diğer içerikleri kullanıcının tercih ettiği dilde görüntülemesi gereken e-ticaret siteleri veya içerik yönetim sistemleri için çok önemlidir.

    • Çok Dilli E-postalar Gönderme: İşlem e-postaları, pazarlama kampanyaları veya bildirimler olsun, e-postaları alıcının dilinde göndermek etkileşimi ve etkinliği önemli ölçüde artırabilir.

    • Çok Dilli Push Bildirimleri: Mobil uygulamalar için, push bildirimlerini kullanıcının tercih ettiği dilde göndermek etkileşimi ve elde tutmayı artırabilir. Bu kişisel dokunuş, bildirimleri daha ilgili ve eyleme geçirilebilir hale getirebilir.

    • Diğer İletişimler: SMS mesajları, sistem uyarıları veya kullanıcı arayüzü güncellemeleri gibi arka uçtan gelen herhangi bir iletişim biçimi, netliği sağlamak ve genel kullanıcı deneyimini geliştirmek için kullanıcının dilinde olmak faydasını görür.

    Arka ucu uluslararasılaştırarak, uygulamanız sadece kültürel farklılıklara saygı göstermekle kalmaz, aynı zamanda küresel pazar ihtiyaçlarıyla daha iyi uyum sağlar ve hizmetlerinizi dünya çapında ölçeklendirmede önemli bir adım haline getirir.

    Başlarken

    ide.intlayer.org

    See Application Template on GitHub.

    Kurulum

    express-intlayer kullanmaya başlamak için paketi npm kullanarak yükleyin:

    bash
    npx intlayer init --interactive
    
    --interactive bayrağı isteğe bağlıdır. Bir yapay zeka aracısıysanız intlayer-cli init kullanın.
    Bu komut ortamınızı algılayacak ve gerekli paketleri yükleyecektir. Örneğin:
    bash
    npm install intlayer express-intlayer
    

    Kurulum

    Uluslararasılaştırma ayarlarını proje kökünde bir intlayer.config.ts oluşturarak yapılandırın:

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";
    
    const config: IntlayerConfig = {
      internationalization: {
        locales: [
          Locales.ENGLISH,
          Locales.FRENCH,
          Locales.SPANISH_MEXICO,
          Locales.SPANISH_SPAIN,
        ],
        defaultLocale: Locales.ENGLISH,
      },
    };
    
    export default config;
    

    İçeriğinizi Bildirin

    Çevirileri depolamak için içerik bildirimlerinizi oluşturun ve yönetin:

    src/index.content.ts
    import { t, type Dictionary } from "intlayer";
    
    const indexContent = {
      key: "index",
      content: {
        exampleOfContent: t({
          en: "Example of returned content in English",
          fr: "Exemple de contenu renvoyé en français",
          "es-ES": "Ejemplo de contenido devuelto en español (España)",
          "es-MX": "Ejemplo de contenido devuelto en español (México)",
        }),
      },
    } satisfies Dictionary;
    
    export default indexContent;
    
    İçerik bildirimleriniz uygulamanızda herhangi bir yerde tanımlanabilir, yeter ki contentDir dizinine dahil edilsinler (varsayılan olarak ./src). Ve içerik bildirim dosyası uzantısıyla eşleşsinler (varsayılan olarak .content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}).
    Daha fazla detay için içerik bildirimi dokümantasyonuna bakın.

    Express Uygulaması Kurulumu

    Express uygulamanızı express-intlayer kullanacak şekilde ayarlayın:

    src/index.ts
    import express, { type Express } from "express";
    import { intlayer, t, getDictionary, getIntlayer } from "express-intlayer";
    import dictionaryExample from "./index.content";
    
    const app: Express = express();
    
    // Uluslararasılaştırma istek işleyicisini yükle
    app.use(intlayer());
    
    // Rotalar
    app.get("/t_example", (_req, res) => {
      res.send(
        t({
          en: "Example of returned content in English",
          fr: "Exemple de contenu renvoyé en français",
          "es-ES": "Ejemplo de contenido devuelto en español (España)",
          "es-MX": "Ejemplo de contenido devuelto en español (México)",
        })
      );
    });
    
    app.get("/getIntlayer_example", (_req, res) => {
      res.send(getIntlayer("index").exampleOfContent);
    });
    
    app.get("/getDictionary_example", (_req, res) => {
      res.send(getDictionary(dictionaryExample).exampleOfContent);
    });
    
    // Sunucuyu başlat
    app.listen(3000, () => console.log(`Port 3000'de dinleniyor`));
    

    Uyumluluk

    express-intlayer tamamen uyumludur:

    Ayrıca, tarayıcılar ve API istekleri dahil olmak üzere çeşitli ortamlarda herhangi bir uluslararasılaştırma çözümüyle sorunsuz çalışır. Yerel ayarı başlık veya çerezler aracılığıyla algılamak için ara yazılımı özelleştirebilirsiniz:

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";
    
    const config: IntlayerConfig = {
      // ... Diğer yapılandırma seçenekleri
      routing: {
        storage: [
          { type: "header", name: "my-locale-header" },
          { type: "cookie", name: "my-locale-cookie" },
        ],
      },
    };
    
    export default config;
    

    Varsayılan olarak, express-intlayer istemcinin tercih ettiği dili belirlemek için Accept-Language başlığını yorumlayacaktır.

    Yapılandırma ve gelişmiş konular hakkında daha fazla bilgi için dokümantasyonumuzu ziyaret edin.

    TypeScript'i Yapılandırın

    express-intlayer, uluslararasılaştırma sürecini geliştirmek için TypeScript'in güçlü yeteneklerinden yararlanır. TypeScript'in statik yazımı, her çeviri anahtarının hesaba katıldığını sağlar, eksik çeviri riskini azaltır ve sürdürülebilirliği iyileştirir.

    Autocompletion

    Translation error

    Otomatik oluşturulan türlerin (varsayılan olarak ./types/intlayer.d.ts) tsconfig.json dosyanızda dahil edildiğinden emin olun.

    tsconfig.json
    {
      // ... Mevcut TypeScript yapılandırmalarınız
      "include": [
        // ... Mevcut TypeScript yapılandırmalarınız
        ".intlayer/**/*.ts", // Otomatik oluşturulan türleri dahil edin
      ],
    }
    

    VS Code Uzantısı

    Intlayer ile geliştirme deneyiminizi iyileştirmek için resmi Intlayer VS Code Uzantısı'nı yükleyebilirsiniz.

    Bu uzantı şunları sağlar:

    • Çeviri anahtarları için otomatik tamamlama.
    • Eksik çeviriler için gerçek zamanlı hata algılama.
    • Çevrilmiş içeriğin satır içi önizlemeleri.
    • Çevirileri kolayca oluşturmak ve güncellemek için hızlı eylemler.

    Uzantının nasıl kullanılacağı hakkında daha fazla detay için Intlayer VS Code Uzantısı dokümantasyonuna bakın.

    Git Yapılandırması

    Intlayer tarafından oluşturulan dosyaları yok saymanız önerilir. Bu, onları Git deponuza commit etmenizi önler.

    Bunu yapmak için .gitignore dosyanıza aşağıdaki talimatları ekleyebilirsiniz:

    .gitignore
    # Intlayer tarafından oluşturulan dosyaları yok say
    .intlayer
    

    Sıkça Sorulan Sorular

    Tarihsel seçenek, ad alanı başına JSON kataloglarını yükleyen ve yerel ayarı istek üzerinde saklayan i18next-http-middleware ile i18nexttir. Alternatif ise içeriği ön ucunuzla paylaşılan tipli dosyalarda bildiren, istek başına yerel ayarı çözen, yapay zeka çevirisi ve bir CMS ekleyen express-intlayer aracılığıyla Intlayerdır.

    Arka ucu uluslararasılaştırmanın temel nedeni, kullanıcının okuduğu metnin büyük bir kısmının ön uçtan asla geçmemesidir: API hata mesajları, işlemsel e-postalar, anlık bildirimler, SMS ve PDF dışa aktarmaları. Bunlar, oturum başına yerine istek başına çözülen alıcının diline ihtiyaç duyar.

    Bkz. neden Intlayer.

    Çok az. Sözlükler önceden derlenir ve yalnızca bildirdiğiniz yerel ayarlar dahil edilir, bu nedenle açılışta katalog yüklemesi ve istek yolunda dosya okuması yoktur. Bu, paket boyutunun soğuk başlatma süresini belirlediği serverless ve edge dağıtımlarında en çok önem taşır. Bkz. paket optimizasyonu.

    Evet, ve iki yol vardır. İçeriği i18next geçiş rehberi ile aşamalı olarak taşıyabilirsiniz. Ya da mevcut API'nizi tamamen koruyabilirsiniz: uyumluluk adaptörleri (compat adapters), i18next ile birebir aynı API'yi sunar ancak Intlayer sözlükleriyle beslenir; böylece yalnızca import'lar değişir, handler kodu değişmez.

    Evet. sync JSON eklentisi, /messages/{locale}/{namespace}.json dosyalarınızı doğruluk kaynağı olarak tutar ve her iki yönde Intlayer sözlükleri üretir. sync PO eklentisi gettext katalogları için aynısını yapar ve yerel başına dosyalar, yerelleri tek bir dosyada gruplamak yerine içeriği dile göre ayırmanıza olanak tanır.

    Hayır. npx intlayer extract komutunu çalıştırın; Intlayer kaynak dosyalarınızı okur, kullanıcıya dönük dizeleri çıkarır ve her birinin yanına bir .content dosyası yazar, böylece dizeleri bir kataloğa tek tek kopyalamak yerine bir diff incelersiniz. Bkz. extract komutu.

    Aynı projenin ön uç tarafında Intlayer Compiler daha da ileri gider ve sözlükleri derleme zamanında JSX, TSX, Vue veya Svelte kaynağınızdan üretir; böylece uygulamanın iki yarısı, elle yönetilen hiçbir anahtar olmadan tek bir içerik katmanını paylaşır.

    Beş araç, hepsi isteğe bağlı:

    • VS Code eklentisi: bir useIntlayer anahtarından onu tanımlayan içerik dosyasına atlayın, bir bileşenden içerik çıkarın ve komut paletinden veya özel bir Intlayer sekmesinden build, fill, test, push ve pull komutlarını çalıştırın.
    • LSP sunucusu: LSP destekleyen her editörde aynı farkındalık: tanıma gitme, tüm referansları bulma, çevrilmiş değerin fareyle üzerine gelindiğinde önizlemesi, anahtar ve alanların otomatik tamamlanması ve bir anahtar hiçbir yerde tanımlanmadığında uyarı. Ayrıca i18next, react-i18next, next-intl ve use-intl çağrılarını da çözer; bu da geçiş sırasında yardımcı olur.
    • MCP sunucusu: Intlayer dokümantasyonunu ve CLI'sini Cursor, VS Code, Claude Desktop, Claude Code ve ChatGPT'ye sunar; böylece asistan tahmin etmek yerine güncel dokümantasyona dayanarak yanıt verir ve intlayer fill gibi komutları kendisi çalıştırabilir.
    • Ajan becerileri (Agent skills): intlayer-config, intlayer-cli ve intlayer-content gibi odaklanmış beceriler ile her framework için bir beceri; ajana yönlendirme kurulumunuzu ve içerik düğümü türlerini öğretir.
    • ESLint eklentisi: no-raw-text doğrudan kodlanmış metinleri işaretler; statik sözlük anahtarları ve kullanılmayan içerik için ek kurallar da vardır.