Yazar:
    Oluşturma:2024-08-13Son güncelleme:2026-08-22

    Intlayer Yapılandırma Belgeleri

    Genel Bakış

    Intlayer yapılandırma dosyaları, uluslararasılaştırma, ara yazılım (middleware) ve içerik yönetimi gibi eklentinin çeşitli yönlerini özelleştirmenize olanak tanır. Bu belge, yapılandırmadaki her özelliğin ayrıntılı bir açıklamasını sunar.

    İçindekiler

    Yapılandırma Dosyası Desteği

    Intlayer, JSON, JS, MJS ve TS yapılandırma dosyası formatlarını kabul eder:

    • intlayer.config.ts
    • intlayer.config.js
    • intlayer.config.json
    • intlayer.config.json5
    • intlayer.config.jsonc
    • intlayer.config.cjs
    • intlayer.config.mjs
    • .intlayerrc

    Örnek Yapılandırma Dosyası

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";
    import { nextjsRewrite } from "intlayer/routing";
    import { syncJSON } from "@intlayer/sync-json-plugin";
    import { z } from "zod";
    
    /**
     * Mevcut tüm seçenekleri gösteren Intlayer yapılandırma dosyası örneği.
     */
    const config: IntlayerConfig = {
      /**
       * Uluslararasılaştırma ayarları için yapılandırma.
       */
      internationalization: {
        /**
         * Uygulamada desteklenen dillerin listesi.
         * Varsayılan: [Locales.ENGLISH]
         */
        locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
    
        /**
         * Her sözlükte tanımlanması gereken zorunlu dillerin listesi.
         * Boşsa, `strict` modda tüm diller zorunludur.
         * Varsayılan: []
         */
        requiredLocales: [Locales.ENGLISH],
    
        /**
         * Uluslararasılaştırılmış içerik için katılık seviyesi.
         * - "strict": Bildirilen bir dil eksikse veya bildirilmemişse hata verir.
         * - "inclusive": Bildirilen bir dil eksikse uyarı verir.
         * - "loose": Mevcut herhangi bir dili kabul eder.
         * Varsayılan: "inclusive"
         */
        strictMode: "inclusive",
    
        /**
         * İstenen dil bulunamadığında geri dönüş (fallback) olarak kullanılan varsayılan dil.
         * Varsayılan: Locales.ENGLISH
         */
        defaultLocale: Locales.ENGLISH,
      },
    
      /**
       * Sözlük işlemlerini ve geri dönüş davranışını kontrol eden ayarlar.
       */
      dictionary: {
        /**
         * Sözlüklerin nasıl içe aktarılacağını kontrol eder.
         * - "static": Derleme zamanında statik olarak içe aktarılır.
         * - "dynamic": Suspense kullanılarak dinamik olarak içe aktarılır.
         * - "fetch": Live Sync API aracılığıyla dinamik olarak getirilir.
         * Varsayılan: "static"
         */
        importMode: "static",
    
        /**
         * Eksik çevirileri yapay zeka kullanarak otomatik doldurma stratejisi.
         * Bir boolean değer veya doldurulan içeriği saklamak için bir yol kalıbı olabilir.
         * Varsayılan: true
         */
        fill: true,
    
        /**
         * Sözlük dosyalarının fiziksel konumu.
         * - "local": Yerel dosya sisteminde saklanır.
         * - "remote": Intlayer CMS'de saklanır.
         * - "hybrid": Hem yerel dosya sisteminde hem de Intlayer CMS'de saklanır.
         * - "plugin" (veya herhangi bir özel dize): Bir eklenti veya özel bir kaynak tarafından sağlanır.
         * Varsayılan: "local"
         */
        location: "local",
    
        /**
         * İçeriklerin otomatik olarak dönüştürülüp dönüştürülmeyeceği (örneğin Markdown'dan HTML'e).
         * Varsayılan: false
         */
        contentAutoTransformation: false,
      },
    
      /**
       * Yönlendirme ve ara yazılım yapılandırması.
       */
      routing: {
        /**
         * Dil yönlendirme stratejisi.
         * - "prefix-no-default": Varsayılan dil dışındaki tüm diller için önek (örneğin /dashboard, /fr/dashboard).
         * - "prefix-all": Tüm diller için önek (örneğin /en/dashboard, /fr/dashboard).
         * - "no-prefix": URL'de dil yok.
         * - "search-params": ?locale=... kullanır.
         * Varsayılan: "prefix-no-default"
         */
        mode: "prefix-no-default",
    
        /**
         * Intlayer yerel ayar yönlendirme proxy'sini (middleware) etkinleştirir.
         * dev, preview ve SSR ortamlarında yerel ayar tespiti, yönlendirme ve yeniden yazmayı yönetir.
         * - ayarlanmamış (auto): dev ve preview sunucuları, çerezlerde ve başlıklarda saklanan
         *   yerel ayarı yok sayarak yönlendirmeyi URL odaklı tutar. Önekler yine çözümlenir,
         *   yerel ayar yine kalıcı hale getirilir ve Accept-Language tespiti yine geçerlidir.
         *   Üretimde `true` gibi davranır.
         * - true: her ortamda tam davranış.
         * - false: yerel ayar yönlendirmesi yok.
         * Varsayılan: undefined (auto)
         */
        enableProxy: undefined,
    
        /**
         * Kullanıcının seçtiği dilin nerede saklanacağı.
         * Seçenekler: 'cookie', 'localStorage', 'sessionStorage', 'header' veya bunların bir dizisi.
         * Varsayılan: ['cookie', 'header']
         */
        storage: ["cookie", "header"],
    
        /**
         * Uygulama URL'leri için temel yol.
         * Varsayılan: ""
         */
        basePath: "",
    
        /**
         * Dile özel yollar için özel URL yeniden yazma kuralları.
         */
        rewrite: nextjsRewrite({
          "/[locale]/about": {
            en: "/[locale]/about",
            fr: "/[locale]/a-propos",
          },
        }),
    
        /**
         * Alan adı tabanlı yönlendirme için dilleri alan adı ana bilgisayar adlarıyla eşleştirir.
         * Bu dillerin URL'leri mutlak olacaktır (örneğin, https://intlayer.cn/).
         * Alan adı dili ima eder, bu nedenle yola herhangi bir dil öneki eklenmez.
         * Varsayılan: undefined
         */
        domains: {
          en: "intlayer.org",
          zh: "intlayer.cn",
        },
      },
    
      /**
       * İçerik dosyalarını bulma ve işleme ayarları.
       */
      content: {
        /**
         * Sözlükler için taranacak dosya uzantıları.
         * Varsayılan: ['.content.ts', '.content.js', '.content.json', vb.]
         */
        fileExtensions: [".content.ts", ".content.js", ".content.json"],
    
        /**
         * .content dosyalarının bulunduğu dizinler.
         * Varsayılan: ["."]
         */
        contentDir: ["src"],
    
        /**
         * Kaynak kodun bulunduğu dizin.
         * Derleme optimizasyonu ve kod dönüşümü için kullanılır.
         * Varsayılan: ["."]
         */
        codeDir: ["src"],
    
        /**
         * Taramadan hariç tutulacak kalıplar.
         * Varsayılan: ['node_modules', '.intlayer', vb.]
         */
        excludedPath: ["node_modules"],
    
        /**
         * Geliştirme sırasında değişikliklerin izlenip izlenmeyeceği ve sözlüklerin yeniden oluşturulup oluşturulmayacağı.
         * Varsayılan: Geliştirmede true
         */
        watch: true,
    
        /**
         * Yeni oluşturulan / güncellenen .content dosyalarını biçimlendirmek için komut.
         */
        formatCommand: 'npx prettier --write "{{file}}"',
      },
    
      /**
       * Görsel Editör yapılandırması.
       */
      editor: {
        /**
         * Görsel editörün etkin olup olmadığı.
         * Varsayılan: false
         */
        enabled: true,
    
        /**
         * Kaynak doğrulaması için uygulamanızın URL'si.
         * Varsayılan: ""
         */
        applicationURL: "http://localhost:3000",
    
        /**
         * Yerel editör sunucusu için port.
         * Varsayılan: 8000
         */
        port: 8000,
    
        /**
         * Editör için genel URL.
         * Varsayılan: "http://localhost:8000"
         */
        editorURL: "http://localhost:8000",
    
        /**
         * Intlayer CMS URL'si.
         * Varsayılan: "https://app.intlayer.org"
         */
        cmsURL: "https://app.intlayer.org",
    
        /**
         * Arka uç API URL'si.
         * Varsayılan: "https://back.intlayer.org"
         */
        backendURL: "https://back.intlayer.org",
    
        /**
         * Gerçek zamanlı içerik senkronizasyonunun etkinleştirilip etkinleştirilmeyeceği.
         * Varsayılan: false
         */
        liveSync: true,
      },
    
      /**
       * Analitik (analytics) yapılandırması.
       */
      analytics: {
        /**
         * Analitik toplamanın etkin olup olmadığı (sayfa görüntülemeleri, içerik gösterimleri, A/B olayları).
         * `@intlayer/analytics` paketinin kurulu olması ve atıflandırma (attribution) için `editor.clientId` ayarlanmış olması gerekir.
         * Varsayılan: true
         */
        enabled: true,
    
        /**
         * Backend'e otomatik toplu gönderimler arasındaki milisaniye.
         * Varsayılan: 20000
         */
        flushInterval: 20000,
    
        /**
         * Kaydedilecek oturumların oranı, 0 (hiçbiri) ile 1 (tümü) arasında.
         * Varsayılan: 1
         */
        sampleRate: 1,
      },
    
      /**
       * Yapay zeka destekli çeviri ve oluşturma ayarları.
       */
      ai: {
        /**
         * Kullanılacak yapay zeka sağlayıcısı.
         * Seçenekler: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai', 'lmstudio', 'moonshotai'
         * Varsayılan: 'openai'
         */
        provider: "openai",
    
        /**
         * Seçilen sağlayıcıdan kullanılacak model.
         */
        model: "gpt-4o",
    
        /**
         * Sağlayıcının API anahtarı.
         */
        apiKey: process.env.OPENAI_API_KEY,
    
        /**
         * Çeviri oluştururken yapay zekaya rehberlik edecek küresel bağlam.
         */
        applicationContext: "Bu bir seyahat rezervasyon uygulamasıdır.",
    
        /**
         * Yapay zeka API'si için temel URL.
         */
        baseURL: "http://localhost:3000",
    
        /**
         * Veri Serileştirme
         *
         * Seçenekler:
         * - "json": Varsayılan, güvenilir; daha fazla token tüketir.
         * - "toon": Daha az token, JSON kadar tutarlı değil.
         *
         * Varsayılan: "json"
         */
        dataSerialization: "json",
      },
    
      /**
       * Derleme ve optimizasyon ayarları.
       */
      build: {
        /**
         * Derleme yürütme modu.
         * - "auto": Uygulama derlemesi sırasında otomatik derleme.
         * - "manual": Açık bir derleme komutu gerektirir.
         * Varsayılan: "auto"
         */
        mode: "auto",
    
        /**
         * Kullanılmayan sözlükleri kaldırarak final paketinin optimize edilip edilmeyeceği.
         * Varsayılan: Üretimde true
         */
        optimize: true,
    
        /**
         * Demet boyutunu azaltmak için sözlükleri küçültün (Minify).
         * Varsayılan: false
         *
         * Not:
         * - `optimize` devre dışı bırakılırsa bu seçenek yoksayılır.
         * - `editor.enabled` true ise bu seçenek yoksayılır.
         */
        minify: true,
    
        /**
         * Sözlüklerdeki kullanılmayan anahtarları temizleyin (Purge).
         * Varsayılan: false
         *
         * Not:
         * - `optimize` devre dışı bırakılırsa bu seçenek yoksayılır.
         */
        purge: true,
    
        /**
         * Yerel ayara özgü sözlük parçalarını, onları kullanan kod bölme sınırına göre
         * grupla; böylece geç yüklenen bir sayfa içeriğini tek istekte alır.
         * Varsayılan: true
         *
         * Not:
         * - Yalnızca `importMode: 'dynamic'` kullanan sözlükler için geçerlidir.
         */
        chunkGrouping: true,
    
        /**
         * Bir sözlüğü, onu kullanan parça render edildikten sonra getirmek yerine o
         * parçayla birlikte yükle. Okumalar askıya alınmak yerine eşzamanlı render
         * edilir, böylece gezinme sırasında artık yükleme durumu görünmez.
         * Varsayılan: true
         *
         * Not:
         * - Yalnızca çözümlenen yerel ayar beklenir, bu nedenle sayfa yalnızca
         *   gösterdiği dili indirir.
         */
        dictionariesPreload: true,
    
        /**
         * Oluşturulan sözlük dosyaları için çıktı formatı.
         * Varsayılan: ['cjs', 'esm']
         */
        outputFormat: ["cjs", "esm"],
    
        /**
         * Derlemenin TypeScript türlerini kontrol edip etmeyeceği.
         * Varsayılan: false
         */
        checkTypes: false,
      },
    
      /**
       * Logger yapılandırması.
       */
      log: {
        /**
         * Günlük kaydı seviyesi.
         * - "default": Standart günlük kaydı.
         * - "verbose": Ayrıntılı hata ayıklama günlüğü.
         * - "disabled": Günlük kaydı yok.
         * Varsayılan: "default"
         */
        mode: "default",
    
        /**
         * Tüm günlük mesajları için önek.
         * Varsayılan: "[intlayer]"
         */
        prefix: "[intlayer]",
      },
    
      /**
       * Sistem Yapılandırması (Gelişmiş Kullanım Durumları)
       */
      system: {
        /**
         * Yerelleştirilmiş sözlükleri saklamak için dizin.
         */
        dictionariesDir: ".intlayer/dictionary",
    
        /**
         * Modül genişletme (module augmentation) dizini.
         */
        moduleAugmentationDir: ".intlayer/types",
    
        /**
         * Birleştirilmemiş sözlükleri saklamak için dizin.
         */
        unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
    
        /**
         * Sözlük türlerini saklamak için dizin.
         */
        typesDir: ".intlayer/types",
    
        /**
         * Ana uygulama dosyalarının saklandığı dizin.
         */
        mainDir: ".intlayer/main",
    
        /**
         * Yapılandırma dosyalarının saklandığı dizin.
         */
        configDir: ".intlayer/config",
    
        /**
         * Önbellek dosyalarının saklandığı dizin.
         */
        cacheDir: ".intlayer/cache",
      },
    
      /**
       * Derleyici Yapılandırması (Gelişmiş Kullanım Durumları)
       */
      compiler: {
        /**
         * Derleyicinin etkin olup olmayacağı.
         *
         * - false: Derleyiciyi devre dışı bırak.
         * - true: Derleyiciyi etkinleştir.
         * - "build-only": Başlangıç sürelerini hızlandırmak için geliştirme sırasında derleyiciyi atla.
         *
         * Varsayılan: false
         */
        enabled: true,
    
        /**
         * Çıktı dosyaları için yolu belirler. `outputDir` yerine geçer.
         *
         * - `./` yolları bileşen dizinine göre çözümlenir.
         * - `/` yolları proje köküne (`baseDir`) göre çözümlenir.
         *
         * - Yol içinde `{{locale}}` değişkeninin bulunması, dile göre ayrı sözlükler oluşturulmasını tetikler.
         *
         * Örnek:
         * ```ts
         * {
         *   // Bileşenin yanında çok dilli .content.ts dosyaları oluştur
         *   output: ({ fileName, extension }) => `./${fileName}${extension}`,
         *
         *   // output: './{{fileName}}{{extension}}', // Şablon dizesi kullanarak eşdeğer
         * }
         * ```
         *
         * ```ts
         * {
         *   // Proje kökünde dile göre merkezileştirilmiş JSON'lar oluştur
         *   output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
         *
         *   // output: '/locales/{{locale}}/{{key}}.content.json', // Şablon dizesi kullanarak eşdeğer
         * }
         * ```
         *
         * Değişken Listesi:
         *   - `fileName`: Dosya adı.
         *   - `key`: İçerik anahtarı.
         *   - `locale`: İçerik dili (locale).
         *   - `extension`: Dosya uzantısı.
         *   - `componentFileName`: Bileşen dosya adı.
         *   - `componentExtension`: Bileşen dosya uzantısı.
         *   - `format`: Sözlük formatı.
         *   - `componentFormat`: Bileşen sözlük formatı.
         *   - `componentDirPath`: Bileşen dizin yolu.
         */
        output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
    
        /**
         * Dönüştürüldükten sonra bileşenlerin kaydedilip kaydedilmeyeceği.
         * Bu sayede derleyici uygulamayı dönüştürmek için yalnızca bir kez çalıştırılabilir ve ardından kaldırılabilir.
         */
        saveComponents: false,
    
        /**
         * Oluşturulan dosyaya yalnızca içeriği ekle. Dile göre i18next veya ICU MessageFormat JSON çıktıları için yararlıdır.
         */
        noMetadata: false,
    
        /**
         * Sözlük anahtar öneki
         */
        dictionaryKeyPrefix: "", // Çıkarılan sözlük anahtarları için isteğe bağlı önek ekleyin
      },
    
      /**
       * Sözlüklerin içeriğini doğrulamak için özel şemalar.
       */
      schemas: {
        "my-schema": z.object({
          title: z.string(),
        }),
      },
    
      /**
       * Sözlük yapılandırması.
       */
      dictionary: {
        /**
         * Sözlüklerin nasıl içe aktarıldığını kontrol eder.
         * - "static": Derleme zamanında statik olarak içe aktarılır.
         * - "dynamic": Suspense kullanılarak dinamik olarak içe aktarılır.
         * - "fetch": Canlı senkronizasyon API'si aracılığıyla dinamik olarak alınır.
         */
        importMode: "static",
    
        /**
         * Projedeki tüm sözlükler için varsayılan mesaj biçimi.
         * - 'intlayer': Yerel intlayer biçimi (varsayılan).
         * - 'icu': ICU mesaj biçimi.
         * - 'i18next': i18next biçimi.
         * - 'vue-i18n': Vue I18n biçimi.
         * - 'po': GNU Gettext PO biçimi.
         */
        format: "icu",
      },
    
      /**
       * Eklenti yapılandırması.
       */
      plugins: [
        syncJSON({
          format: "icu",
          source: ({ locale }) => `./messages/${locale}.json`,
        }),
      ],
    };
    
    export default config;
    

    Yapılandırma Referansı

    Aşağıdaki bölümler Intlayer için mevcut olan çeşitli yapılandırma ayarlarını açıklamaktadır.

    Uluslararasılaştırma Yapılandırması

    Mevcut diller ve uygulama için varsayılan dil de dahil olmak üzere uluslararasılaştırma ile ilgili ayarları tanımlar.

    AlanAçıklamaTürVarsayılanÖrnekNot
    localesUygulamada desteklenen dillerin listesi.string[][Locales.ENGLISH]['en', 'fr', 'es']
    requiredLocalesUygulamada gerekli olan dillerin listesi.string[][][]• Boşsa, strict modda tüm diller gereklidir.
    • Gerekli dillerin locales alanında da tanımlandığından emin olun.
    strictModeTypeScript kullanarak uluslararasılaştırılmış içeriğin sağlam uygulamalarını sağlar.string'inclusive'"strict" ise: t fonksiyonu bildirilen her dilin tanımlanmış olmasını gerektirir - eksikse veya bildirilmemişse hata verir.
    "inclusive" ise: Eksik diller için uyarı verir ancak bildirilmeyenlerin kullanımına izin verir.
    "loose" ise: Mevcut herhangi bir dili kabul eder.
    defaultLocaleİstenen dil bulunamadığında geri dönüş olarak kullanılan varsayılan dil.stringLocales.ENGLISH'en'URL'de, tanımlama bilgisinde (cookie) veya üstbilgide (header) belirtilmediğinde dili belirlemek için kullanılır.

    Editör Yapılandırması

    Sunucu portu ve etkinleştirme durumu dahil olmak üzere yerleşik görsel editör ayarlarını tanımlar.

    AlanAçıklamaTürVarsayılanÖrnekNot
    applicationURLUygulamanın URL'si.stringundefined'http://localhost:3000'
    'https://example.com'
    process.env.INTLAYER_EDITOR_URL
    • Güvenlik nedeniyle editörün kaynağını kısıtlamak için kullanılır.
    '*' olarak ayarlanırsa, editöre herhangi bir kaynaktan erişilebilir.
    portGörsel editör sunucusu tarafından kullanılan port.number8000
    editorURLEditör sunucusunun URL'si.string'http://localhost:8000''http://localhost:3000'
    'https://example.com'
    process.env.INTLAYER_EDITOR_URL
    • Uygulama ile etkileşime girebilecek kaynakları kısıtlamak için kullanılır.
    '*' olarak ayarlanırsa, herhangi bir kaynaktan erişilebilir.
    • Port değiştirilirse veya editör farklı bir alanda barındırılıyorsa ayarlanmalıdır.
    cmsURLIntlayer CMS URL'si.string'https://app.intlayer.org''https://app.intlayer.org'
    backendURLArka uç sunucusunun URL'si.stringhttps://back.intlayer.orghttp://localhost:4000
    enabledUygulamanın görsel editörle etkileşime girip girmeyeceği.booleanfalseprocess.env.NODE_ENV !== 'production'false ise editör uygulama ile etkileşime giremez.
    • Belirli ortamlar için devre dışı bırakmak güvenliği artırır.
    clientIdintlayer paketlerinin oAuth2 üzerinden arka uç ile kimlik doğrulaması yapmasına olanak tanır. Erişim belirteci almak için intlayer.org/project adresine gidin.string |
    undefined
    undefinedGizli tutulmalıdır; ortam değişkenlerinde saklayın.
    clientSecretintlayer paketlerinin oAuth2 üzerinden arka uç ile kimlik doğrulaması yapmasına olanak tanır. Erişim belirteci almak için intlayer.org/project adresine gidin.string |
    undefined
    undefinedGizli tutulmalıdır; ortam değişkenlerinde saklayın.
    dictionaryPriorityStrategyHem yerel hem de uzak sözlükler mevcut olduğunda sözlüklere öncelik verme stratejisi.string'local_first''distant_first''distant_first': uzak sözlüklere yerellere göre öncelik verir.
    'local_first': yerellere uzaklara göre öncelik verir.
    liveSyncCMS
    Görsel Editör
    Arka Uç'ta bir değişiklik algılandığında uygulama sunucusunun içeriği anında yeniden yükleyip yüklemeyeceği.
    booleantruetrue• Bir sözlük eklendiğinde/güncellendiğinde uygulama sayfa içeriğini yeniler.
    • Live Sync, içeriği başka bir sunucuya taşır ve bu performansı biraz etkileyebilir.
    • Her ikisinin de aynı makinede barındırılması önerilir.
    liveSyncPortLive Sync sunucusunun portu.number40004000
    liveSyncURLLive Sync sunucusunun URL'si.string'http://localhost:{liveSyncPort}''https://example.com'Varsayılan olarak localhost'u gösterir; uzak bir Live Sync sunucusu için değiştirilebilir.

    Analitik Yapılandırması (Analytics)

    Intlayer analitiğiyle ilgili ayarları tanımlar: kullanıcılara gerçekten gösterilen içeriğin (sayfa görüntülemeleri, içerik gösterimleri) toplanması ve içerik üzerinde A/B testinin desteklenmesi.

    Analitik opt-out'tur: varsayılan olarak etkindir ve @intlayer/analytics paketi kurulur kurulmaz ve atıflandırma için bir proje anahtarı (editor.clientId) yapılandırıldığı anda veri toplamaya başlar. analytics.enabled değerini false yapın — ya da paketi kurmayın — analitik entegrasyonunun tamamı uygulama paketinizden kaldırılır (dead-code elimination).

    AlanAçıklamaTürVarsayılanÖrnekNot
    enabledAnalitik toplamayı etkinleştirir (sayfa görüntülemeleri, içerik gösterimleri, A/B olayları).booleantruefalse@intlayer/analytics paketinin kurulu olması ve atıflandırma için editor.clientId ayarlanmış olması gerekir; aksi takdirde enabled true olsa bile analitik devre dışı kalır.
    flushIntervalBackend'e otomatik toplu gönderimler arasındaki milisaniye.number2000010000
    sampleRateKaydedilecek oturumların oranı, 0 (hiçbiri) ile 1 (tümü) arasında.number10.5Örnekleme oturum başına belirlenimlidir, bu nedenle kaydedilen bir oturum tüm olaylarını raporlar (kısmi huniler olmaz).

    Yönlendirme Yapılandırması

    URL yapısı, dil saklama ve ara yazılım yönetimi dahil olmak üzere yönlendirme davranışını kontrol eden ayarlar.

    AlanAçıklamaTürVarsayılanÖrnekNot
    modeDil yönetimi için URL yönlendirme modu.'prefix-no-default' |
    'prefix-all' |
    'no-prefix' |
    'search-params'
    'prefix-no-default''prefix-no-default': /dashboard (en) veya /fr/dashboard (fr). 'prefix-all': /en/dashboard. 'no-prefix': dil başka yollarla yönetilir. 'search-params': /dashboard?locale=frTanımlama bilgisi (cookie) veya dil saklama yönetimini etkilemez.
    enableProxyIntlayer yerel ayar yönlendirme proxy'sini (middleware) etkinleştirir.boolean |
    undefined
    undefined (auto)true• Ayarlanmamış (auto): dev ve preview sunucuları çerezlerde/başlıklarda saklanan yerel ayarı yönlendirme kaynağı olarak yok sayar; önekler, kalıcılık ve Accept-Language tespiti yine geçerlidir. Üretimde true gibi davranır.
    true: her yerde tam davranış.
    false: yerel ayar yönlendirmesi yok. Next.js’te intlayerProxy middleware’i devre dışı geçiş haline gelir.
    storageİstemcide dilin saklanması için yapılandırma.false |
    'cookie' |
    'localStorage' |
    'sessionStorage' |
    'header' |
    CookiesAttributes |
    StorageAttributes |
    Array
    ['cookie', 'header']'localStorage'
    [{ type: 'cookie', name: 'custom-locale', secure: true }]
    Aşağıdaki Saklama Seçenekleri tablosuna bakın.
    basePathUygulama URL'leri için temel yol.string'''/my-app'Uygulama https://example.com/my-app adresindeyse, basePath '/my-app' olur ve URL'ler https://example.com/my-app/en şekline dönüşür.
    rewriteBelirli yollar için varsayılan yönlendirme modunu geçersiz kılan özel URL yeniden yazma kuralları. Dinamik [param] parametrelerini destekler.Record<string, StrictModeLocaleMap<string>>undefinedAşağıdaki örneğe bakın• Yeniden yazma kuralları mode üzerinde önceliğe sahiptir.
    • Next.js ve Vite ile çalışır.
    getLocalizedUrl() eşleşen kuralları otomatik olarak uygular.
    • Şuna bakın: Özel URL Yeniden Yazmaları.
    domainsAlan adı tabanlı yönlendirme için dilleri alan adı ana bilgisayar adlarıyla eşleştirir. Ayarlandığında, o dilin URL'leri bu alan adını temel (mutlak URL) olarak kullanır ve yola dil öneki eklenmez.Partial<Record<Locale, string>>undefined{ zh: 'intlayer.zh', fr: 'intlayer.org' }• Ana bilgisayar adına dahil edilmediğinde varsayılan protokol https://'dir.
    • Alan adının kendisi dili tanımladığı için /zh/ öneki eklenmez.
    getLocalizedUrl('/', 'zh'), https://intlayer.zh/ döndürür.

    rewrite Örneği:

    typescript
    routing: {
      mode: "prefix-no-default", // Geri dönüş stratejisi
      rewrite: nextjsRewrite({
        "/about": {
          en: "/about",
          fr: "/a-propos",
        },
        "/product/[slug]": {
          en: "/product/[slug]",
          fr: "/produit/[slug]",
        },
        "/blog/[category]/[id]": {
          en: "/blog/[category]/[id]",
          fr: "/journal/[category]/[id]",
        },
      }),
    }
    

    Saklama Seçenekleri

    DeğerNotAçıklama
    'cookie'• GDPR uyumluluğu için uygun kullanıcı onayını aldığınızdan emin olun.
    CookiesAttributes ({ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }) aracılığıyla özelleştirilebilir.
    Dili tanımlama bilgilerinde (cookies) saklar - hem istemci hem de sunucu tarafından erişilebilir.
    'localStorage'• Açıkça silinmedikçe süresi dolmaz.
    • Intlayer proxy'si buna erişemez.
    StorageAttributes ({ type: 'localStorage', name: 'custom-locale' }) aracılığıyla özelleştirilebilir.
    Dili tarayıcıda süresiz olarak saklar - sadece istemci tarafı.
    'sessionStorage'• Sekme/pencere kapatıldığında silinir.
    • Intlayer proxy'si buna erişemez.
    StorageAttributes ({ type: 'sessionStorage', name: 'custom-locale' }) aracılığıyla özelleştirilebilir.
    Dili sayfa oturumu süresince saklar - sadece istemci tarafı.
    'header'• API çağrıları için yararlıdır.
    • İstemci tarafı buna erişemez.
    StorageAttributes ({ type: 'header', name: 'custom-locale' }) aracılığıyla özelleştirilebilir.
    Dili HTTP üstbilgileri (headers) üzerinden aktarır - sadece sunucu tarafı.

    Tanımlama bilgisi saklama alanını kullanırken, ek nitelikler yapılandırabilirsiniz:

    AlanAçıklamaTür
    nameTanımlama bilgisi adı. Varsayılan: 'INTLAYER_LOCALE'string
    domainTanımlama bilgisi alanı. Varsayılan: undefinedstring
    pathTanımlama bilgisi yolu. Varsayılan: undefinedstring
    secureHTTPS gerektirir. Varsayılan: undefinedboolean
    httpOnlyHTTP-only bayrağı. Varsayılan: undefinedboolean
    sameSiteSameSite politikası.'strict' |
    'lax' |
    'none'
    expiresSayı, oluşturulmasından itibaren günleri temsil eder; tarih (veya ISO tarih dizesi) mutlak bir son kullanma tarihidir. Varsayılan: undefinedDate |
    number |
    string
    maxAgeOluşturulmasından itibaren saniye cinsinden ömrü. expires seçeneğinden önceliklidir. Varsayılan: undefinednumber

    Saklama Nitelikleri

    localStorage veya sessionStorage kullanırken:

    AlanAçıklamaTür
    typeSaklama türü.'localStorage' |
    'sessionStorage'
    nameSaklama anahtarı adı. Varsayılan: 'INTLAYER_LOCALE'string

    Yapılandırma Örnekleri

    İşte yeni v7 yönlendirme yapısı için bazı yaygın yapılandırma örnekleri:

    Temel Yapılandırma (Varsayılan):

    typescript
    import { Locales, type IntlayerConfig } from "intlayer";
    // intlayer.config.ts
    const config: IntlayerConfig = {
      internationalization: {
        locales: ["en", "fr", "es"],
        defaultLocale: "en",
      },
      routing: {
        mode: "prefix-no-default",
        storage: "localStorage",
        basePath: "",
      },
    };
    
    export default config;
    

    GDPR Uyumlu Yapılandırma:

    typescript
    import { Locales, type IntlayerConfig } from "intlayer";
    // intlayer.config.ts
    const config: IntlayerConfig = {
      internationalization: {
        locales: ["en", "fr", "es"],
        defaultLocale: "en",
      },
      routing: {
        mode: "prefix-no-default",
        storage: [
          {
            type: "localStorage",
            name: "user-locale",
          },
          {
            type: "cookie",
            name: "user-locale",
            secure: true,
            sameSite: "strict",
            httpOnly: false,
          },
        ],
        basePath: "",
      },
    };
    
    export default config;
    

    Arama Parametresi Modu:

    typescript
    import { Locales, type IntlayerConfig } from "intlayer";
    // intlayer.config.ts
    const config: IntlayerConfig = {
      internationalization: {
        locales: ["en", "fr", "es"],
        defaultLocale: "en",
      },
      routing: {
        mode: "search-params",
        storage: "localStorage",
        basePath: "",
      },
    };
    
    export default config;
    

    Özel Saklama ile Öneksiz Mod:

    typescript
    import { Locales, type IntlayerConfig } from "intlayer";
    // intlayer.config.ts
    const config: IntlayerConfig = {
      internationalization: {
        locales: ["en", "fr", "es"],
        defaultLocale: "en",
      },
      routing: {
        mode: "no-prefix",
        storage: {
          type: "sessionStorage",
          name: "app-locale",
        },
        basePath: "/my-app",
      },
    };
    
    export default config;
    

    Dinamik Rotalar ile Özel URL Yeniden Yazma:

    typescript
    // intlayer.config.ts
    import { nextjsRewrite } from "intlayer/routing";
    
    const config: IntlayerConfig = {
      internationalization: {
        locales: ["en", "fr"],
        defaultLocale: "en",
      },
      routing: {
        mode: "prefix-no-default", // Yeniden yazılmayan yollar için geri dönüş
        storage: "cookie",
        rewrite: nextjsRewrite({
          "/about": {
            en: "/about",
            fr: "/a-propos",
          },
          "/product/[slug]": {
            en: "/product/[slug]",
            fr: "/produit/[slug]",
          },
          "/blog/[category]/[id]": {
            en: "/blog/[category]/[id]",
            fr: "/journal/[category]/[id]",
          },
        }),
      },
    };
    
    export default config;
    

    İçerik Yapılandırması

    Dizin adları, dosya uzantıları ve türetilmiş yapılandırmalar dahil olmak üzere uygulama içindeki içeriğin nasıl yönetileceği ile ilgili ayarlar.

    AlanAçıklamaTürVarsayılanÖrnekNot
    watchIntlayer'ın sözlükleri yeniden oluşturmak için içerik bildirim dosyalarındaki değişiklikleri izleyip izlemeyeceği.booleantrue
    fileExtensionsSözlükleri derlerken taranacak dosya uzantıları.string[]['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.json5', '.content.jsonc', '.content.tsx', '.content.jsx']['.data.ts', '.data.js', '.data.json']Özelleştirme çatışmaları önlemeye yardımcı olabilir.
    contentDirİçerik tanımlama dosyalarının (.content.*) saklandığı dizin yolu.string[]['.']['src', '../../ui-library', require.resolve("@my-package/content"), '@my-package/content']İçerik dosyalarını izlemek ve sözlükleri yeniden oluşturmak için kullanılır.
    codeDirKodun saklandığı temel dizine göre dizin yolu.string[]['.']['src', '../../ui-library']• Dönüşüm (budama, optimizasyon) için kod dosyalarını izlemek için kullanılır.
    contentDirden ayırmak performansı artırabilir.
    excludedPathİçerik taramasından hariç tutulan dizinler.string[]['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**']Henüz kullanılmıyor; gelecekteki uygulama için planlandı.
    formatCommandIntlayer onları yerel olarak yazarken içerik dosyalarını biçimlendirme komutu.stringundefined'npx prettier --write "{{file}}" --log-level silent' (Prettier), 'npx biome format "{{file}}" --write --log-level none' (Biome), 'npx eslint --fix "{{file}}" --quiet' (ESLint){{file}} dosya yolu ile değiştirilecektir.
    • Tanımlanmazsa, Intlayer bunu otomatik olarak algılar (prettier, biome, eslint'i test eder).

    Sistem Yapılandırması

    Intlayer'ın iç yolları ve çıktı sonuçlarıyla ilgili ayarlar. Bu ayarlar tipik olarak dahili olup kullanıcı tarafından değiştirilmesi gerekmez.

    AlanAçıklamaTürVarsayılanÖrnekNot
    baseDirProje için temel dizin.stringprocess.cwd()'/path/to/project'Tüm Intlayer ile ilgili dizinleri çözmek için kullanılır.
    dictionariesDirYerelleştirme sözlüklerinin depolanması için dizin yolu.string'.intlayer/dictionary'
    moduleAugmentationDirModül artırması için dizin, daha iyi IDE önerileri ve tür kontrolü sağlar.string'.intlayer/types''intlayer-types'Bunu tsconfig.json dosyasına dahil ettiğinizden emin olun.
    unmergedDictionariesDirBirleştirilmemiş sözlükleri depolamak için dizin.string'.intlayer/unmerged_dictionary'
    typesDirSözlük türlerini depolamak için dizin.string'.intlayer/types'
    mainDirAna uygulama dosyalarının depolandığı dizin.string'.intlayer/main'
    configDirYapılandırma dosyalarının depolandığı dizin.string'.intlayer/config'
    cacheDirÖnbellek dosyalarının depolandığı dizin.string'.intlayer/cache'

    Sözlük Yapılandırması

    Otomatik doldurma davranışı ve içerik oluşturma dahil olmak üzere sözlük işlemlerini kontrol eden parametreler.

    Bu sözlük yapılandırması iki ana amaca hizmet eder:

    1. Varsayılan Değerler: İçerik bildirimi dosyaları oluştururken varsayılan değerler tanımlayın
    2. Fallback Davranışı: Belirli alanlar tanımlanmadığında geri dönüş değerleri sağlayarak sözlük işlemi davranışını küresel olarak tanımlamanıza izin verin

    İçerik bildirim dosyaları ve yapılandırma değerlerinin nasıl uygulandığı hakkında daha fazla bilgi için İçerik Dosyası Belgesi bölümüne bakın.

    AlanAçıklamaTürVarsayılanÖrnekNot
    fillOtomatik doldurma (yapay zeka çevirisi) çıktı dosyalarının nasıl oluşturulacağını kontrol eder.boolean |
    FilePathPattern |
    Partial<Record<Locale, boolean | FilePathPattern>>
    true{ en: '/locales/en/{{key}}.json', fr: ({ key }) => '/locales/fr/${key}.json', es: false }true: varsayılan yol (kaynakla aynı dosya).
    false: devredışı.
    • Dize/fonksiyon kalıbı dil başına dosyalar oluşturur.
    • Dil başına nesne: her dil kendi kalıbına karşılık gelir; false o dili yok sayar.
    {{locale}} eklemek dil başına oluşturmayı tetikler.
    • Sözlük düzeyindeki fill her zaman bu genel ayardan önceliklidir.
    descriptionEditörün ve CMS'in sözlüğün amacını anlamasına yardımcı olur. Yapay zeka destekli çeviri oluşturma için bağlam olarak da kullanılır.stringundefined'Kullanıcı profili bölümü'
    localeSözlüğü dil başına bir formata dönüştürür. Bildirilen her alan bir çeviri düğümü olur. Yoksa, sözlük çok dilli olarak kabul edilir.LocalesValuesundefined'en'Birden fazla dil için çeviriler içermek yerine sözlük belirli bir dil için olduğunda bunu kullanın.
    contentAutoTransformationİçerik dizelerini otomatik olarak tiplendirilmiş düğümlere (markdown, HTML veya ekleme) dönüştürür.boolean |
    { markdown?: boolean; html?: boolean; insertion?: boolean }
    falsetrue• Markdown : ### Titlemd('### Title').
    • HTML : <div>Title</div>html('<div>Title</div>').
    • Ekleme : Merhaba {{name}}insert('Merhaba {{name}}').
    locationSözlük dosyalarının nerede saklandığını ve CMS ile nasıl senkronize edildiğini belirtir.'local' |
    'remote' |
    'hybrid' |
    'plugin' |
    string
    'local''hybrid''local': sadece yerel olarak yönetilir.
    'remote': sadece uzaktan yönetilir (CMS).
    'hybrid': hem yerel hem de uzaktan yönetilir.
    'plugin' veya özel dize: bir eklenti veya özel bir kaynak tarafından yönetilir.
    importModeSözlüklerin nasıl içe aktarılacağını kontrol eder.'static' |
    'dynamic' |
    'fetch'
    'static''dynamic''static': statik olarak içe aktarılır.
    'dynamic': Suspense kullanılarak dinamik olarak içe aktarılır.
    'fetch': Live Sync API aracılığıyla getirilir; başarısız olursa 'dynamic'e geri döner.
    @intlayer/babel ve @intlayer/swc eklentilerini gerektirir.
    • Anahtarlar statik olarak bildirilmelidir.
    optimize kapalıysa yok sayılır.
    getIntlayer, getDictionary vb.'ni etkilemez.
    formatProjedeki tüm sözlükler için varsayılan mesaj biçimi.'intlayer' |
    'icu' |
    'i18next' |
    'vue-i18n' |
    'po'
    'intlayer''icu''intlayer': Yerel intlayer biçimi.
    'icu': ICU mesaj biçimi.
    'i18next': i18next biçimi.
    'vue-i18n': Vue I18n biçimi.
    'po': GNU Gettext PO biçimi.
    prioritySözlüğün önceliği. Sözlükler arasındaki çatışmaları çözerken yüksek değerler düşük değerleri yener.numberundefined1
    liveKullanımdan kaldırıldı - bunun yerine importMode: 'fetch' kullanın. Sözlük içeriğinin Live Sync API aracılığıyla dinamik olarak getirilip getirilmeyeceğini belirtiyordu.booleanundefinedv8.0.0'da importMode: 'fetch' olarak yeniden adlandırıldı.
    schemaJSON şema doğrulaması için Intlayer tarafından otomatik olarak oluşturulur.'https://intlayer.org/schema.json'otomatik oluşturulurManuel olarak düzenlemeyin.
    titleEditörde ve CMS'de sözlüğü tanımlamaya yardımcı olur.stringundefined'Kullanıcı Profili'
    tagsSözlükleri kategorize eder ve editör ile yapay zeka için bağlam veya talimatlar sağlar.string[]undefined['kullanıcı', 'profil']
    versionUzak sözlüğün sürümü; şu anda kullanılan sürümün izlenmesine yardımcı olur.stringundefined'1.0.0'• CMS'de yönetilebilir.
    • Yerel olarak düzenlemeyin.

    fill Örneği:

    ts
    dictionary: {
      fill: {
        en: "/locales/en/{{key}}.content.json",
        fr: ({ key }) => `/locales/fr/${key}.content.json`,
        es: false,
      },
    };
    

    Logger Yapılandırması

    Intlayer'dan gelen günlük çıkışını özelleştirmek için parametreler.

    AlanAçıklamaTürVarsayılanÖrnekNot
    modeLogger modunu belirtir.'default' |
    'verbose' |
    'disabled'
    'default''verbose''verbose': hata ayıklama için daha fazla bilgi günlüğe kaydeder.
    'disabled': logger'ı tamamen devre dışı bırakır.
    prefixGünlük mesajları için önek.string'[intlayer] ''[özel öneğim] '

    Yapay Zeka (AI) Yapılandırması

    Sağlayıcı, model ve API anahtarı dahil olmak üzere Intlayer'ın yapay zeka özelliklerini kontrol eden ayarlar.

    Bir erişim anahtarı ile Intlayer Dashboard'a kayıtlıysanız bu yapılandırma isteğe bağlıdır. Intlayer, ihtiyaçlarınız için en verimli ve uygun maliyetli yapay zeka çözümünü otomatik olarak yönetecektir. Varsayılan seçeneklerin kullanılması, Intlayer en ilgili modelleri kullanmak üzere sürekli güncellendiğinden daha iyi uzun vadeli bakılabilirlik sağlar.

    Kendi API anahtarınızı veya belirli bir modeli kullanmayı tercih ederseniz, özel yapay zeka yapılandırmanızı tanımlayabilirsiniz. Bu yapay zeka yapılandırması, Intlayer ortamınızda küresel olarak kullanılacaktır. CLI komutları, fill gibi komutlar için varsayılan olarak bu ayarları kullanacaktır; aynı şekilde SDK, Görsel Editör ve CMS de öyle. Komut parametreleri aracılığıyla belirli kullanım durumları için bu varsayılan değerleri geçersiz kılabilirsiniz.

    Intlayer, maksimum esneklik için birden fazla yapay zeka sağlayıcısını destekler. Şu anda desteklenen sağlayıcılar şunlardır:

    • OpenAI (Varsayılan)
    • Anthropic Claude
    • Mistral AI
    • DeepSeek
    • Google Gemini
    • Google AI Studio
    • Google Vertex
    • Meta Llama
    • Ollama
    • OpenRouter
    • Alibaba Cloud
    • Fireworks
    • Hugging Face
    • Groq
    • Amazon Bedrock
    • Together.ai
    • LM Studio
    AlanAçıklamaTürVarsayılanÖrnekNot
    providerIntlayer yapay zeka özellikleri için kullanılacak sağlayıcı.'openai' |
    'anthropic' |
    'mistral' |
    'deepseek' |
    'gemini' |
    'ollama' |
    'openrouter' |
    'alibaba' |
    'fireworks' |
    'groq' |
    'huggingface' |
    'bedrock' |
    'googleaistudio' |
    'googlevertex' |
    'togetherai' |
    'lmstudio' |
    'moonshotai'
    undefined'anthropic'Farklı sağlayıcılar farklı API anahtarları gerektirir ve farklı fiyatlandırmalara sahiptir.
    modelYapay zeka özellikleri için kullanılacak model.stringYok'gpt-4o-2024-11-20'Belirli model sağlayıcıya göre değişir.
    temperatureYapay zeka yanıtlarının rastgeleliğini kontrol eder.numberYok0.1Daha yüksek sıcaklık = daha yaratıcı ve daha az tahmin edilebilir.
    apiKeySeçilen sağlayıcı için API anahtarınız.stringYokprocess.env.OPENAI_API_KEYGizli tutulmalıdır; ortam değişkenlerinde saklayın.
    applicationContextYapay zekanın daha doğru çeviriler üretmesine yardımcı olmak için uygulamanız hakkında ek bağlam (alan adı, hedef kitle, ton, terminoloji).stringYok'Kendi uygulama bağlamım'Kurallar eklemek için kullanılabilir (örneğin: "URL'leri dönüştürmemelisiniz").
    baseURLYapay zeka API'si için temel URL.stringYok'https://api.openai.com/v1'
    'http://localhost:5000'
    Yerel veya özel bir yapay zeka API uç noktasına işaret edebilir.
    dataSerializationYapay zeka özellikleri için veri serileştirme formatı.'json' |
    'toon'
    undefined'toon''json': varsayılan, güvenilir; daha fazla token kullanır.
    'toon': daha az token, daha az tutarlı.
    • Modele bağlam olarak ek parametreler iletilir (akıl yürütme çabası vb.).

    Derleme (Build) Yapılandırması

    Intlayer'ın uygulamanızın uluslararasılaştırılmasını nasıl optimize ettiğini ve derlediğini kontrol eden parametreler.

    Derleme seçenekleri @intlayer/babel ve @intlayer/swc eklentileri için geçerlidir.

    Geliştirme modunda Intlayer, geliştirme deneyimini basitleştirmek için sözlükler için statik içe aktarmalar kullanır.
    Optimizasyon sırasında Intlayer, yığınlamayı (chunking) optimize etmek için sözlük çağrılarını değiştirecektir, böylece final paketi yalnızca gerçekte kullanılan sözlükleri içe aktaracaktır.
    AlanAçıklamaTürVarsayılanÖrnekNot
    modeDerleme modunu kontrol eder.'auto' |
    'manual'
    'auto''manual''auto': uygulama derlemesi sırasında derleme otomatik olarak tetiklenir.
    'manual': yalnızca derleme komutu açıkça çağrıldığında yürütülür.
    • Sözlük derlemelerini devre dışı bırakmak için kullanılabilir (örneğin Node.js ortamlarında yürütmeyi durdurmak için).
    optimizeDerlemenin optimize edilip edilmeyeceğini kontrol eder.booleanundefinedprocess.env.NODE_ENV === 'production'• Tanımlanmazsa, optimizasyon framework derlemesinde (Vite/Next.js) tetiklenir.
    true ise geliştirme modunda bile optimizasyonu zorlar.
    false ise devre dışı bırakır.
    • Etkinse, yığınlamayı optimize etmek için sözlük çağrılarını yer değiştirir.
    @intlayer/babel ve @intlayer/swc eklentilerini gerektirir.
    minifyDemet boyutunu azaltmak için sözlükleri küçültün (Minify).booleanfalse• Paketin küçültülüp küçültülmeyeceğini belirtir.
    • Varsayılan: Üretimde true.
    optimize devre dışı bırakılırsa bu seçenek yoksayılır.
    editor.enabled true ise bu seçenek yoksayılır.
    purgeSözlüklerdeki kullanılmayan anahtarları temizleyin (Purge).booleanfalse• Paketin temizlenip temizlenmeyeceğini belirtir.
    • Varsayılan: Üretimde true.
    optimize devre dışı bırakılırsa bu seçenek yoksayılır.
    checkTypesDerlemenin TypeScript türlerini kontrol edip etmeyeceğini ve hataları günlüğe kaydedip kaydetmeyeceğini belirtir.booleanfalseDerleme sürecini yavaşlatabilir.
    chunkGroupingYerel ayara özgü sözlük parçalarının, onları kullanan kod bölme sınırına göre gruplanıp gruplanmayacağını belirtir.booleantrue• Gruplama olmadan, çok sayıda bileşenden oluşan bir sayfa sözlük başına bir istek gönderir.
    • Birden fazla sınırdan erişilen sözlükler paylaşılan bir parçaya taşınır, böylece hiçbir sayfa başka bir sayfanın içeriğini taşımaz.
    • Yalnızca importMode: 'dynamic' kullanan sözlükler için geçerlidir.
    • Yalnızca istemci derlemesi için ve yalnızca paketleme sırasında geçerlidir (geliştirme modunda değil).
    dictionariesPreloadBir sözlüğün, onu kullanan parça render edildikten sonra getirilmek yerine o parçayla birlikte yüklenip yüklenmeyeceğini belirtir.booleantrue• Oluşturulan giriş noktası gezinme yerel ayarını en üst düzeyde bekler, bu nedenle geç yüklenen bir rota, içeriği hazır olana kadar yüklenmiş sayılmaz.
    • Okumalar askıya alınmak yerine eşzamanlı render edilir, böylece gezinme sırasında artık yükleme durumu görünmez.
    • Yalnızca çözümlenen yerel ayar beklenir, bu nedenle sayfa yalnızca gösterdiği dili indirir.
    • Yalnızca istemci derlemesinde importMode: 'dynamic' kullanan sözlükler için geçerlidir.
    • Top-level await destekleyen bir paketleyici gerektirir (Vite, esbuild).
    outputFormatSözlüklerin çıktı formatını kontrol eder.('esm' | 'cjs')[]['esm', 'cjs']['cjs']
    traversePatternOptimizasyon sırasında hangi dosyaların taranacağını tanımlayan kalıplar.string[]['**/*.{tsx,ts,js,mjs,cjs,jsx,vue,svelte,svte}', '!**/node_modules/**', '!**/dist/**', '!**/.intlayer/**', '!**/*.config.*', '!**/*.test.*', '!**/*.spec.*', '!**/*.stories.*']['src/**/*.{ts,tsx}', '../ui-library/**/*.{ts,tsx}', '!**/node_modules/**']• Derleme performansını artırmak için optimizasyonu ilgili dosyalarla sınırlayın.
    optimize kapalıysa yok sayılır.
    • Glob kalıplarını kullanır.

    Derleyici Yapılandırması

    Sözlükleri doğrudan bileşenlerinizden çıkaran Intlayer derleyicisini kontrol eden ayarlar.

    AlanAçıklamaTürVarsayılanÖrnekNot
    enabledSözlüklerin çıkarılması için derleyicinin etkinleştirilip etkinleştirilmeyeceği.boolean |
    'build-only'
    true'build-only''build-only', başlangıç sürelerini hızlandırmak için geliştirme sırasında derleyiciyi atlar; yalnızca derleme komutlarında yürütülür.
    dictionaryKeyPrefixÇıkarılan sözlük anahtarları için önek.string'''özel-önekim-'Çatışmaları önlemek için (dosya adına dayalı) oluşturulan anahtara eklenir.
    saveComponentsBileşenlerin dönüştürüldükten sonra kaydedilip kaydedilmeyeceği.booleanfalsetrue ise, orijinal dosyaları dönüştürülmüş sürümleriyle değiştirir.
    • Derleyici bir çalıştırmadan sonra kaldırılabilir.
    outputÇıktı dosyaları için yolu belirler. outputDir yerine geçer. Şablon değişkenlerini destekler: {{fileName}},
    {{key}},
    {{locale}},
    {{extension}},
    {{componentFileName}},
    {{componentExtension}},
    {{format}},
    {{componentFormat}},
    {{componentDirPath}}.
    boolean |
    FilePathPattern |
    Partial<Record<Locale, boolean | FilePathPattern>>
    undefined'./{{fileName}}{{extension}}'
    '/locales/{{locale}}/{{key}}.json'
    { en: ({ key }) => './locales/en/${key}.json', fr: '...', es: false }
    ./ yolları bileşen dizinine göre çözümlenir.
    / yolları köke göredir.
    {{locale}} dil başına oluşturmayı tetikler.
    • Dil başına nesne notasyonunu destekler.
    noMetadatatrue ise, derleyici sözlük meta verilerini (anahtar, içerik sarmalayıcı) çıktıdan çıkarır.booleanfalsefalse{"key":"anahtarım","content":{"key":"değer"}}
    true{"key":"değer"}
    • i18next veya ICU MessageFormat JSON çıktıları için yararlıdır.
    loadJSON eklentisi ile iyi çalışır.
    dictionaryKeyPrefixSözlük anahtar önekistring''Çıkarılan sözlük anahtarları için isteğe bağlı önek ekleyin

    Özel Şemalar (Custom Schemas)

    AlanAçıklamaTür
    schemasSözlüklerinizin yapısını doğrulamak için Zod şemaları tanımlamanıza olanak tanır.Record<string, ZodSchema>

    Eklentiler (Plugins)

    AlanAçıklamaTür
    pluginsEtkinleştirilecek Intlayer eklentilerinin listesi.IntlayerPlugin[]

    Sıkça Sorulan Sorular

    Projenizin kök dizininde, package.json dosyasının yanında. Intlayer çalışma dizinini ve üst dizinleri intlayer.config.ts, intlayer.config.js, intlayer.config.mjs veya intlayer.config.cjs için tarar. CLI komutlarında --config bayrağı ile özel bir yol da belirtebilirsiniz.

    Ad alanı (namespace) tabanlı bir kuruluma kıyasla çok daha az, çünkü bir sayfa render etmediği bir sözlüğü asla indirmez. Sunucu tarafında render edilen markup içeriği sunucuda çözer ve derleme zamanı derleyicisi useIntlayer çağrılarını bileşenin kullandığı kesin sözlük kayıtlarıyla değiştirir, böylece kullanılmayan anahtarlar ve diller elenir. Dinamik sözlükler geri kalanını yerel başına böler. Yaygın alternatiflerle karşılaştırıldığında Intlayer paket ve sayfa boyutunu %50'ye kadar azaltır. Bkz. paket optimizasyonu ve kıyaslama.

    Evet, iki yol mevcuttur. i18next geçiş kılavuzu veya next-intl geçiş kılavuzu ile içeriği aşamalı olarak taşıyabilirsiniz. Ya da mevcut API'nizi tamamen koruyabilirsiniz: uyumluluk adaptörleri, i18next, react-i18next, next-intl, next-i18next, react-intl, use-intl, vue-i18n ve Lingui ile tamamen aynı API'yi sunar, ancak Intlayer sözlükleri tarafından desteklenir; böylece yalnızca import satırları değişir, bileşen kodu aynı kalır.

    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 tek tek kopyalamak yerine bir diff incelersiniz. Bkz. extract komutu.

    Tam otomatik bir akış için Intlayer Compiler derleme sırasında JSX, TSX, Vue ve Svelte kodunda aynı işlemi yapar ve sözlükleri her değişiklikte otomatik üretir, böylece elle anahtar yönetimi gerekmez. Statik analizle çalıştığından, yalnızca çalışma zamanında var olan dizeler kapsam dışı kalır.

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

    • VS Code eklentisi: bir useIntlayer anahtarından onu tanımlayan içerik dosyasına atlayın, bileşenden içerik çıkarın ve komut paletinden build, fill, test, push ve pull komutlarını çalıştırın.
    • LSP sunucusu: LSP destekleyen tüm editörlerde tanıma gitme, tüm referansları bulma, çevrilmiş değerlerin fareyle üzerine gelindiğinde önizlemesi ve otomatik tamamlama. i18next, react-i18next, next-intl ve use-intl çağrılarını da çözer.
    • MCP sunucusu: Intlayer dokümantasyonunu ve CLI'sini Cursor, VS Code, Claude Desktop, Claude Code ve ChatGPT'ye sunar.
    • Ajan becerileri (Agent skills): intlayer-config, intlayer-cli ve intlayer-content gibi odaklanmış beceriler.
    • ESLint eklentisi: no-raw-text kuralı doğrudan kodlanmış metinleri işaretler.