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

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

    Sürüm Geçmişi

    1. "Derleyici seçeneklerini güncelle, FilePathPattern desteği ekle"
      v8.2.009.03.2026
    2. "Derleyici seçeneklerini güncelle"
      v8.1.725.02.2026
    3. "Compiler Yayınlandı"
      v7.3.127.11.2025

    Bu sayfanın içeriği bir yapay zeka kullanılarak çevrildi.

    Orijinal içeriğin İngilizce son sürümünü görüntüleyin
    Bu dokümanı düzenle

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

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

    Belge Markdown'ını panoya kopyala

    Intlayer Compiler | i18n için Otomatik İçerik Çıkarımı

    Intlayer Compiler Nedir?

    Intlayer Compiler, uygulamalarınızda uluslararasılaştırma (i18n) sürecini otomatikleştirmek için tasarlanmış güçlü bir araçtır. Kaynak kodunuzu (JSX, TSX, Vue, Svelte) içerik bildirimleri için tarar, bunları çıkarır ve gerekli sözlük dosyalarını otomatik olarak oluşturur. Bu sayede içeriğinizi bileşenlerinizle birlikte tutabilirken, Intlayer sözlüklerinizin yönetimi ve senkronizasyonunu üstlenir.

    Neden Intlayer Compiler Kullanmalısınız?

    • Otomasyon: İçeriğin sözlüklere manuel olarak kopyalanıp yapıştırılmasını ortadan kaldırır.
    • Hız: Derleme sürecinizin hızlı kalmasını sağlayan optimize edilmiş içerik çıkarımı.
    • Geliştirici Deneyimi: İçerik bildirimlerini kullanıldıkları yerde tutarak bakım kolaylığı sağlar.
    • Canlı Güncellemeler: Geliştirme sırasında anlık geri bildirim için Hot Module Replacement (HMR) desteği sağlar.

    Daha derin bir karşılaştırma için Compiler vs. Declarative i18n blog yazısına bakabilirsiniz.

    Neden Intlayer Compiler Kullanmamalısınız?

    Derleyici mükemmel bir "hemen çalışır" deneyimi sunarken, aynı zamanda farkında olmanız gereken bazı ödünleşmeler de getirir:

    • Sezgisel belirsizlik: Derleyici, kullanıcıya yönelik içerik ile uygulama mantığı arasındaki farkı tahmin etmek zorundadır (örneğin, className="active", durum kodları, ürün kimlikleri). Karmaşık kod tabanlarında, bu manuel açıklamalar ve istisnalar gerektiren yanlış pozitifler veya kaçırılan dizelerle sonuçlanabilir.
    • Yalnızca statik çıkarım: Derleyici tabanlı çıkarım statik analize dayanır. Yalnızca çalışma zamanında var olan dizeler (API hata kodları, CMS alanları vb.) derleyici tarafından tek başına keşfedilemez veya çevrilemez, bu nedenle hala tamamlayıcı bir çalışma zamanı i18n stratejisine ihtiyacınız vardır.

    Daha derin bir mimari karşılaştırma için Compiler vs. Declarative i18n blog yazısına bakın.

    Alternatif olarak, içeriğiniz üzerinde tam kontrolü korurken i18n sürecinizi otomatikleştirmek için, Intlayer ayrıca otomatik çıkarım komutu intlayer extract (bkz. CLI dokümantasyonu) veya Intlayer VS Code uzantısının Intlayer: extract content to Dictionary komutunu (bkz. VS Code uzantı dokümantasyonu) sağlar.

    Kullanım

    Vite

    Vite tabanlı uygulamalar (React, Vue, Svelte, vb.) için derleyiciyi kullanmanın en kolay yolu vite-intlayer eklentisidir.

    Kurulum

    bash
    Kodu kopyala

    Kodu panoya kopyala

    npm install vite-intlayer

    Konfigürasyon

    vite.config.ts dosyanızı intlayerCompiler eklentisini içerecek şekilde güncelleyin:

    vite.config.ts
    Kodu kopyala

    Kodu panoya kopyala

    import { defineConfig } from "vite";import { intlayer, intlayerCompiler } from "vite-intlayer";export default defineConfig({ plugins: [   intlayer(),   intlayerCompiler(), // Derleyici eklentisini ekler ],});

    See complete tutorial: Intlayer Compiler with Vite+React

    Framework Desteği

    Vite eklentisi farklı dosya türlerini otomatik olarak algılar ve işler:

    • React / JSX / TSX: Yerel olarak desteklenir.
    • Vue: @intlayer/vue-compiler gerektirir.
    • Svelte: @intlayer/svelte-compiler gerektirir.

    Framework'ünüz için uygun derleyici paketini kurduğunuzdan emin olun:

    bash
    Kodu kopyala

    Kodu panoya kopyala

    # Vue içinnpm install @intlayer/vue-compiler# Svelte içinnpm install @intlayer/svelte-compiler

    Next.js (Babel)

    Next.js veya Babel kullanan diğer Webpack tabanlı uygulamalar için, derleyiciyi @intlayer/babel eklentisi ile yapılandırabilirsiniz.

    Kurulum

    bash
    Kodu kopyala

    Kodu panoya kopyala

    npm install @intlayer/babel

    Konfigürasyon

    babel.config.js (veya babel.config.json) dosyanızı, extraction (çıkarma) eklentisini içerecek şekilde güncelleyin. Intlayer yapılandırmanızı otomatik olarak yüklemek için bir yardımcı getExtractPluginOptions sağlıyoruz.

    babel.config.js
    Kodu kopyala

    Kodu panoya kopyala

    const { intlayerExtractBabelPlugin, intlayerOptimizeBabelPlugin, getExtractPluginOptions, getOptimizePluginOptions,} = require("@intlayer/babel");module.exports = { presets: ["next/babel"], plugins: [   // Bileşenlerden içeriği sözlüklere çıkarın   [intlayerExtractBabelPlugin, getExtractPluginOptions()],   // useIntlayer'ı doğrudan sözlük içe aktarmalarıyla değiştirerek içe aktarmaları optimize edin   [intlayerOptimizeBabelPlugin, getOptimizePluginOptions()], ],};

    Bu yapılandırma, bileşenlerinizde beyan edilen içeriğin otomatik olarak çıkarılmasını ve derleme süreciniz sırasında sözlüklerin oluşturulmasında kullanılmasını sağlar.

    See complete tutorial: Intlayer Compiler with Next.js

    Özel yapılandırma

    Derleyici davranışını özelleştirmek için projenizin kök dizinindeki intlayer.config.ts dosyasını güncelleyebilirsiniz.

    intlayer.config.ts
    Kodu kopyala

    Kodu panoya kopyala

    import { type IntlayerConfig, Locales } from "intlayer";const config: IntlayerConfig = {  compiler: {    /**     * Derleyicinin etkinleştirilip etkinleştirilmeyeceğini belirtir.     * Geliştirme sırasında derleyiciyi atlamak ve başlangıç sürelerini hızlandırmak için 'build-only' olarak ayarlayın.     */    enabled: true,    /**     * Çıktı dosyalarının yolunu tanımlar. `outputDir` yerine geçer.     *     * - `./` ile başlayan yollar bileşen dizinine göre çözümlenir.     * - `/` ile başlayan yollar projenin kök dizinine (`baseDir`) göre çözümlenir.     *     * - Yola `{{locale}}` değişkenini dahil etmek, dile göre ayrılmış sözlüklerin oluşturulmasını etkinleştirir.     *     * Örnekler:     * ```ts     * {     *   // Bileşenin yanına çok dilli .content.ts dosyaları oluşturun     *   output: ({ fileName, extension }) => `./${fileName}${extension}`,     *     *   // output: './{{fileName}}{{extension}}', // Şablon dizesi kullanarak eşdeğer kullanım     * }     * ```     *     * ```ts     * {     *   // Proje kökünde dile göre merkezileştirilmiş JSON dosyaları oluşturun     *   output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,     *     *   // output: '/locales/{{locale}}/{{key}}.content.json', // Şablon dizesi kullanarak eşdeğer kullanım     * }     * ```     *     * Değişken listesi:     *   - `fileName`: Dosya adı.     *   - `key`: İçerik anahtarı.     *   - `locale`: İçerik dili.     *   - `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: ({ fileName, extension }) => `./${fileName}${extension}`,    /**     * Bileşenlerin dönüştürüldükten sonra kaydedilip kaydedilmeyeceğini belirtir.     * Bu şekilde, 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 yerleştirin. Dil başına i18next JSON çıktısı veya ICU MessageFormat için kullanışlıdır.     *     * - `output: ({ locale, key }) => `./locale/${locale}/${key}.json`,`     */    noMetadata: false,    /**     * Sözlük anahtar öneki     */    dictionaryKeyPrefix: "", // Ayıklanan sözlük anahtarları için isteğe bağlı bir önek ekleyin  },};

    Derleyici Yapılandırma Referansı

    Aşağıdaki özellikler intlayer.config.ts dosyanızın compiler bloğunda yapılandırılabilir:

    • enabled:

      • Tip: boolean | 'build-only'
      • Varsayılan: true
      • Açıklama: Derleyicinin etkinleştirilip etkinleştirilmeyeceğini belirtir.
    • dictionaryKeyPrefix:

      • Tip: string
      • Varsayılan: ''
      • Açıklama: Ayıklanan sözlük anahtarları için önek.
    • transformPattern:

      • Tip: string | string[]
      • Varsayılan: ['**/*.{js,ts,mjs,cjs,jsx,tsx,vue,svelte}', '!**/node_modules/**']
      • Açıklama: (Kullanımdan kaldırıldı: bunun yerine build.traversePattern kullanın) Optimize edilecek kodu taramak için desenler.
    • excludePattern:

      • Tip: string | string[]
      • Varsayılan: ['**/node_modules/**']
      • Açıklama: (Kullanımdan kaldırıldı: bunun yerine build.traversePattern kullanın) Optimizasyondan hariç tutulacak desenler.
    • output:

      • Tip: FilePathPattern
      • Varsayılan: ({ key }) => 'compiler/${key}.content.json'
      • Açıklama: Çıktı dosyalarının yolunu tanımlar. outputDir yerine geçer. {{locale}}, {{key}}, {{fileName}}, {{extension}}, {{format}}, {{dirPath}}, {{componentFileName}}, {{componentExtension}}, ve {{componentFormat}} gibi dinamik değişkenleri işler. 'my/{{var}}/path' formatı kullanılarak bir dize olarak veya bir fonksiyon olarak ayarlanabilir.
      • Not: ./**/* yolları bileşene göre çözümlenir. /**/* yolları Intlayer baseDir'e göre çözümlenir.
      • Not: Yolda dil tanımlanmışsa, sözlükler dil başına oluşturulacaktır.
      • Örnek: output: ({ locale, key }) => 'compiler/${locale}/${key}.json'
    • noMetadata:

      • Tip: boolean
      • Varsayılan: false
      • Açıklama: Meta verilerin dosyaya kaydedilip kaydedilmeyeceğini belirtir. Doğruysa, derleyici sözlüklerin meta verilerini (anahtar, içerik sarmalayıcı) kaydetmez. Dil başına i18next veya ICU MessageFormat JSON çıktıları için kullanışlıdır.
      • Not: loadJSON eklentisi ile kullanıldığında kullanışlıdır.
      • Örnek: Eğer true: json { "key": "value" } Eğer false: json { "key": "value", "content": { "key": "value" } }
    • saveComponents:

      • Tip: boolean
      • Varsayılan: false
      • Açıklama: Bileşenlerin dönüştürüldükten sonra kaydedilip kaydedilmeyeceğini belirtir.

    Eksik çevirileri doldur

    Intlayer, eksik çevirileri doldurmanıza yardımcı olacak bir CLI aracı sağlar. Kodunuzdaki eksik çevirileri test etmek ve doldurmak için intlayer komutunu kullanabilirsiniz.

    bash
    Kodu kopyala

    Kodu panoya kopyala

    npx intlayer test         # Eksik çeviri olup olmadığını test et
    bash
    Kodu kopyala

    Kodu panoya kopyala

    npx intlayer fill         # Eksik çevirileri doldur

    Çıkarma

    Intlayer, kodunuzdan içerik çıkarmak için bir CLI aracı sağlar. Kodunuzdaki içeriği çıkarmak için intlayer extract komutunu kullanabilirsiniz.

    bash
    Kodu kopyala

    Kodu panoya kopyala

    npx intlayer extract
    Daha fazla ayrıntı için CLI belgelerine bakın.
    Yerel Dosya
    Otomatik Doldurma
    Alt+→

    Bu sayfada

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

      npm install vite-intlayer
      import { defineConfig } from "vite";import { intlayer, intlayerCompiler } from "vite-intlayer";export default defineConfig({ plugins: [   intlayer(),   intlayerCompiler(), // Derleyici eklentisini ekler ],});
      # Vue içinnpm install @intlayer/vue-compiler# Svelte içinnpm install @intlayer/svelte-compiler
      npm install @intlayer/babel
      const { intlayerExtractBabelPlugin, intlayerOptimizeBabelPlugin, getExtractPluginOptions, getOptimizePluginOptions,} = require("@intlayer/babel");module.exports = { presets: ["next/babel"], plugins: [   // Bileşenlerden içeriği sözlüklere çıkarın   [intlayerExtractBabelPlugin, getExtractPluginOptions()],   // useIntlayer'ı doğrudan sözlük içe aktarmalarıyla değiştirerek içe aktarmaları optimize edin   [intlayerOptimizeBabelPlugin, getOptimizePluginOptions()], ],};
      import { type IntlayerConfig, Locales } from "intlayer";const config: IntlayerConfig = {  compiler: {    /**     * Derleyicinin etkinleştirilip etkinleştirilmeyeceğini belirtir.     * Geliştirme sırasında derleyiciyi atlamak ve başlangıç sürelerini hızlandırmak için 'build-only' olarak ayarlayın.     */    enabled: true,    /**     * Çıktı dosyalarının yolunu tanımlar. `outputDir` yerine geçer.     *     * - `./` ile başlayan yollar bileşen dizinine göre çözümlenir.     * - `/` ile başlayan yollar projenin kök dizinine (`baseDir`) göre çözümlenir.     *     * - Yola `{{locale}}` değişkenini dahil etmek, dile göre ayrılmış sözlüklerin oluşturulmasını etkinleştirir.     *     * Örnekler:     * ```ts     * {     *   // Bileşenin yanına çok dilli .content.ts dosyaları oluşturun     *   output: ({ fileName, extension }) => `./${fileName}${extension}`,     *     *   // output: './{{fileName}}{{extension}}', // Şablon dizesi kullanarak eşdeğer kullanım     * }     * ```     *     * ```ts     * {     *   // Proje kökünde dile göre merkezileştirilmiş JSON dosyaları oluşturun     *   output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,     *     *   // output: '/locales/{{locale}}/{{key}}.content.json', // Şablon dizesi kullanarak eşdeğer kullanım     * }     * ```     *     * Değişken listesi:     *   - `fileName`: Dosya adı.     *   - `key`: İçerik anahtarı.     *   - `locale`: İçerik dili.     *   - `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: ({ fileName, extension }) => `./${fileName}${extension}`,    /**     * Bileşenlerin dönüştürüldükten sonra kaydedilip kaydedilmeyeceğini belirtir.     * Bu şekilde, 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 yerleştirin. Dil başına i18next JSON çıktısı veya ICU MessageFormat için kullanışlıdır.     *     * - `output: ({ locale, key }) => `./locale/${locale}/${key}.json`,`     */    noMetadata: false,    /**     * Sözlük anahtar öneki     */    dictionaryKeyPrefix: "", // Ayıklanan sözlük anahtarları için isteğe bağlı bir önek ekleyin  },};
      npx intlayer test         # Eksik çeviri olup olmadığını test et
      npx intlayer fill         # Eksik çevirileri doldur
      npx intlayer extract