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. Kavram
    3. İçerik Beyanı
    Oluşturma:2025-02-07Son güncelleme:2026-05-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. "YAML ve Markdown dosya formatları için destek eklendi"
      v8.10.019.05.2026
    2. "Add `plural` content node type"
      v8.9.012.05.2026
    3. "`html` içerik düğümü tipi eklendi"
      v8.0.028.01.2026
    4. "Rename `live` import mode to `fetch` to better describe the underlying mechanism."
      v8.0.024.01.2026
    5. "Sözlük seçenekleri `location` ve `schema` eklendi"
      v8.0.018.01.2026
    6. "ICU ve i18next format desteği eklendi"
      v7.5.013.12.2025
    7. "Alanlar dokümantasyonu eklendi"
      v6.0.020.09.2025
    8. "Başlangıç geçmişi"
      v5.5.1029.06.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

    İçerik Dosyası

    www.youtube.com

    İçerik Dosyası Nedir?

    Intlayer'da bir içerik dosyası, sözlük tanımlarını içeren bir dosyadır.
    Bu dosyalar, uygulamanızın metin içeriğini, çevirilerini ve kaynaklarını bildirir.
    İçerik dosyaları, sözlükler oluşturmak için Intlayer tarafından işlenir.

    Sözlükler, uygulamanızın useIntlayer kancasını kullanarak içe aktaracağı nihai sonuç olacaktır.

    Temel Kavramlar

    Sözlük

    Sözlük, anahtarlar tarafından organize edilmiş yapılandırılmış bir içerik koleksiyonudur. Her sözlük şunları içerir:

    • Anahtar: Sözlük için benzersiz bir tanımlayıcı
    • İçerik: Gerçek içerik değerleri (metin, sayılar, nesneler, vb.)
    • Meta Veriler: Başlık, açıklama, etiketler gibi ek bilgiler

    İçerik Dosyası

    İçerik dosyası örneği:

    src/example.content.tsx
    Kodu kopyala

    Kodu panoya kopyala

    import { type ReactNode } from "react";
    import {
      t,
      enu,
      plural,
      cond,
      nest,
      md,
      insert,
      file,
      type Dictionary,
    } from "intlayer";
    
    interface Content {
      imbricatedContent: {
        imbricatedContent2: {
          stringContent: string;
          numberContent: number;
          booleanContent: boolean;
          javaScriptContent: string;
        };
      };
      multilingualContent: string;
      quantityContent: string;
      pluralContent: string;
      conditionalContent: string;
      markdownContent: never;
      htmlContent: never;
      externalContent: string;
      insertionContent: string;
      nestedContent: string;
      fileContent: string;
      jsxContent: ReactNode;
    }
    
    export default {
      key: "page",
      content: {
        imbricatedContent: {
          imbricatedContent2: {
            stringContent: "Merhaba Dünya",
            numberContent: 123,
            booleanContent: true,
            javaScriptContent: `${process.env.NODE_ENV}`,
          },
        },
        multilingualContent: t({
          en: "İngilizce içerik",
          "en-GB": "İngilizce içerik (İngiltere)",
          fr: "Fransızca içerik",
          es: "İspanyolca içerik",
        }),
        quantityContent: enu({
          "<-1": "Eksi birden az araba",
          "-1": "Eksi bir araba",
          "0": "Araba yok",
          "1": "Bir araba",
          ">5": "Birkaç araba",
          ">19": "Birçok araba",
        }),
        pluralContent: plural({
          one: "One car",
          other: "{{count}} cars",
        }),
        conditionalContent: cond({
          true: "Doğrulama etkin",
          false: "Doğrulama devre dışı",
        }),
        insertionContent: insert("Merhaba {{name}}!"),
        nestedContent: nest(
          "navbar", // İç içe yerleştirilecek sözlüğün anahtarı
          "login.button" // [İsteğe bağlı] İç içe yerleştirilecek içeriğin yolu
        ),
        fileContent: file("./path/to/file.txt"),
        externalContent: fetch("https://example.com").then((res) => res.json()),
        markdownContent: md("# Markdown Örneği"),
        htmlContent: html("<p>Hello <strong>World</strong></p>"),
    
        /*
         * Sadece `react-intlayer` veya `next-intlayer` kullanılarak mevcuttur
         */
        jsxContent: <h1>Başlığım</h1>,
      },
    } satisfies Dictionary<Content>; // [isteğe bağlı] Dictionary generiktir ve sözlüğünüzün biçimlendirmesini güçlendirmenize olanak tanır

    İçerik Düğümleri

    İçerik düğümleri, sözlük içeriğinin yapı taşlarıdır. Şunlar olabilirler:

    • İlkel değerler: stringler, sayılar, booleanlar, null, undefined
    • Tiplenmiş düğümler: Çeviriler, koşullar, markdown gibi özel içerik türleri
    • Fonksiyonlar: Çalışma zamanında değerlendirilebilen dinamik içerik bkz. Fonksiyon Getirme
    • Plural Content: See Plural Content See Plural Content
    • İç içe içerik: Diğer sözlüklere referanslar

    İçerik Türleri

    Intlayer, tiplenmiş düğümler aracılığıyla çeşitli içerik türlerini destekler:

    • Çeviri İçeriği: Yerel dil değerlerine sahip çok dilli metinler bkz. Çeviri İçeriği
    • Koşul İçeriği: Boolean ifadelerine dayalı koşullu içerik bkz. Koşul İçeriği
    • Numaralandırma İçeriği: Numaralandırılmış değerlere göre değişen içerik bkz. Numaralandırma İçeriği
    • Ekleme İçeriği: Diğer içeriklere eklenebilen içerik bkz. Ekleme İçeriği
    • Markdown İçeriği: Markdown formatında zengin metin içeriği bkz. Markdown İçeriği
    • HTML İçeriği: İsteğe bağlı özel bileşenlerle zengin HTML içeriği bkz. HTML İçeriği
    • İç İçe İçerik: Diğer sözlüklere referanslar bkz. İç İçe İçerik
    • Cinsiyet İçeriği: Cinsiyete göre değişen içerik bkz. Cinsiyet İçeriği
    • Dosya İçeriği: Harici dosyalara referanslar bkz. Dosya İçeriği

    Sözlük Yapısı

    Intlayer'da bir sözlük, Dictionary türü ile tanımlanır ve davranışını kontrol eden birkaç özelliğe sahiptir:

    Gerekli Özellikler

    key (string)

    Sözlüğün tanımlayıcısıdır. Birden fazla sözlük aynı anahtara sahipse, Intlayer bunları otomatik olarak birleştirir.

    Kebab-case adlandırma kuralını kullanın (örneğin, "about-page-meta").

    Content (string | number | boolean | object | array | function)

    content özelliği, gerçek sözlük verisini içerir ve aşağıdakileri destekler:

    • İlkel değerler: stringler, sayılar, booleanlar, null, undefined
    • Tipli düğümler: Intlayer'ın yardımcı fonksiyonlarıyla oluşturulan özel içerik türleri
    • İç içe nesneler: Karmaşık veri yapıları
    • Diziler: İçerik koleksiyonları
    • Fonksiyonlar: Dinamik içerik değerlendirmesi

    İsteğe Bağlı Özellikler

    title (string)

    Sözlüğü tanımlayıcı, insan tarafından okunabilir başlık. Bu, özellikle çok sayıda sözlük yönetirken veya içerik yönetim arayüzleriyle çalışırken faydalıdır.

    Örnek:

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    {  key: "about-page-meta",  title: "Hakkında Sayfası Meta Verileri",  content: { /* ... */ }}

    description (string)

    Sözlüğün amacını, kullanım yönergelerini ve özel hususları açıklayan ayrıntılı açıklama. Bu açıklama, yapay zeka destekli çeviri üretimi için bağlam olarak da kullanılır ve çeviri kalitesi ile tutarlılığının korunmasında değerlidir.

    Örnek:

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    {  key: "about-page-meta",  description: [    "Bu sözlük Hakkında Sayfasının meta verilerini yönetir",    "SEO için iyi uygulamalar göz önünde bulundurulmalı:",    "- Başlık 50 ile 60 karakter arasında olmalıdır",    "- Açıklama 150 ile 160 karakter arasında olmalıdır",  ].join('\n'),  content: { /* ... */ }}

    tags (string[])

    Sözlükleri kategorize etmek ve düzenlemek için kullanılan string dizisi. Etiketler, ek bağlam sağlar ve editörlerde veya içerik yönetim sistemlerinde filtreleme, arama veya düzenleme için kullanılabilir.

    Örnek:

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    {  key: "about-page-meta",  tags: ["metadata", "about-page", "seo"],  content: { /* ... */ }}

    format ('intlayer' | 'icu' | 'i18next')

    Sözlük içeriği için kullanılacak formatlayıcıyı belirtir. Bu, farklı mesaj formatlama sözdizimlerini kullanmanıza olanak tanır.

    • 'intlayer': Varsayılan Intlayer formatlayıcısı.
    • 'icu': ICU mesaj formatlamasını kullanır.
    • 'i18next': i18next mesaj formatlamasını kullanır.

    Örnek:

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    {  key: "my-dictionary",  format: "icu",  content: {    message: "Hello {name}, you have {count, plural, one {# message} other {# messages}}"  }}

    format ('intlayer' | 'icu' | 'i18next')

    Sözlük içeriği için kullanılacak formatörü belirtir. Bu, farklı mesaj formatlama sözdizimlerini kullanmaya olanak tanır.

    • 'intlayer': Varsayılan Intlayer formatörü.
    • 'icu': ICU mesaj formatlamasını kullanır.
    • 'i18next': i18next mesaj formatlamasını kullanır.

    Örnek:

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    {  key: "my-dictionary",  format: "icu",  content: {    message: "Hello {name}, you have {count, plural, one {# message} other {# messages}}"  }}

    locale (LocalesValues)

    Sözlüğü, içerikte bildirilen her alanın otomatik olarak bir çeviri düğümüne dönüştürüleceği yerel bazlı bir sözlüğe dönüştürür. Bu özellik ayarlandığında:

    • Sözlük tek bir yerel dil sözlüğü olarak işlenir
    • Her alan, o belirli yerel dil için bir çeviri düğümü haline gelir
    • Bu özellik kullanılırken içerikte çeviri düğümleri (t()) kullanmamalısınız
    • Eğer belirtilmezse, sözlük çok dilli bir sözlük olarak işlenir
    Daha fazla bilgi için Intlayer'da Yerel Dil Bazlı İçerik Bildirimi sayfasına bakınız.

    Örnek:

    json
    Kodu kopyala

    Kodu panoya kopyala

    // Yerel dil bazlı sözlük{  "key": "about-page",  "locale": "en",  "content": {    "title": "About Us", // Bu 'en' için bir çeviri düğümü olur    "description": "Learn more about our company"  }}

    schema (SchemaKeys)

    Sözlük içeriğinin şeması. Ayarlanırsa, içerik bu şemaya karşı doğrulanacaktır. Bu, Intlayer yapılandırmanızda tanımlanan özel doğrulama şemalarını kullanarak sözlük içeriğiniz için belirli bir yapı zorlamanıza olanak tanır.

    Örnek:

    intlayer.config.ts
    Kodu kopyala

    Kodu panoya kopyala

    import { z } from "zod";export default {  schemas: {    "seo-metadata": z.object({      title: z.string().min(50).max(60),      description: z.string().min(150).max(160),    }),  },};
    src/example.content.ts
    Kodu kopyala

    Kodu panoya kopyala

    import { type Dictionary } from "intlayer";const aboutPageMetaContent = {  key: "about-page-meta",  schema: "seo-metadata",  content: {    title: "About Our Company - Learn More About Us",    description: "Discover our company's mission, values, and team.",  },} satisfies Dictionary;export default aboutPageMetaContent;

    location ('local' | 'remote' | 'hybrid' | string)

    Sözlüğün konumunu belirtir ve CMS ile nasıl senkronize olduğunu kontrol eder:

    • 'local': Sözlük yalnızca yerel olarak yönetilir. Uzaktan CMS'ye gönderilmeyecektir. Kod tabanınızda kalması gereken içerik için bunu kullanın.
    • 'remote': Sözlük yalnızca uzaktan yönetilir. CMS'ye gönderildikten sonra yerel dosyadan ayrılacaktır. İçerik yükleme zamanında uzaktan sözlük CMS'den çekilecektir. remote konumuna sahip bir .content dosyası ilk gönderimden sonra yok sayılacaktır.
    • 'hybrid': Sözlük hem yerel hem de uzaktan yönetilir. CMS'ye gönderildikten sonra senkronize kalacaktır, yerel dosyadaki değişiklikler CMS'ye gönderilir ve uzaktan değişiklikler yerel dosyaya geri çekilebilir.
    • string (örn. 'plugin'): Sözlük bir eklenti veya özel kaynak tarafından yönetilir. Göndermeye çalıştığınızda sistem size ne yapacağınızı soracaktır.

    Örnek:

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    {  key: "about-page",  location: "local", // İçerik yalnızca kod tabanınızda kalır  content: {    title: "About Us"  }}

    autoFill (AutoFill)

    Sözlük içeriğini harici kaynaklardan otomatik olarak doldurma talimatları. Bu, intlayer.config.ts içinde global olarak veya sözlük bazında yapılandırılabilir. Birden fazla formatı destekler:

    • true: Tüm yerel diller için otomatik doldurmayı etkinleştirir
    • string: Tek bir dosya yolu veya değişkenlerle şablon
    • object: Yerel dil bazında dosya yolları

    Örnekler:

    json
    Kodu kopyala

    Kodu panoya kopyala

    // Tüm yerel diller için etkinleştir{  "autoFill": true}// Tek dosya{  "autoFill": "./translations/aboutPage.content.json"}// Değişkenlerle şablon{  "autoFill": "/messages/{{locale}}/{{key}}/{{fileName}}.content.json"}// Yerel dil bazında detaylı yapılandırma{  "autoFill": {    "en": "./translations/en/aboutPage.content.json",    "fr": "./translations/fr/aboutPage.content.json",    "es": "./translations/es/aboutPage.content.json"  }}

    Kullanılabilir değişkenler:

    • {{locale}} – Yerel dil kodu (örneğin fr, es)
    • {{fileName}} – Dosya adı (örneğin example)
    • {{key}} – Sözlük anahtarı (örneğin example)
    Daha fazla bilgi için Intlayer'da Otomatik Doldurma Yapılandırması sayfasına bakınız.
    priority (sayı)

    Çakışma çözümlemesi için sözlüğün önceliğini belirtir. Birden fazla sözlük aynı anahtara sahip olduğunda, en yüksek öncelik numarasına sahip sözlük diğerlerinin üzerine yazacaktır. Bu, içerik hiyerarşilerini ve geçersiz kılmaları yönetmek için faydalıdır.

    Örnek:

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    // Temel sözlük{  key: "welcome-message",  priority: 1,  content: { message: "Hoş geldiniz!" }}// Geçersiz kılma sözlüğü{  key: "welcome-message",  priority: 10,  content: { message: "Premium hizmetimize hoş geldiniz!" }}// Bu, temel sözlüğün üzerine yazacaktır

    CMS Özellikleri

    version (string)

    Uzak sözlükler için sürüm tanımlayıcısı. Hangi sürümün kullanıldığını takip etmeye yardımcı olur, özellikle uzak içerik yönetim sistemleri ile çalışırken faydalıdır.

    importMode ('static' | 'dynamic' | 'fetch')

    İçe aktarma modu, sözlüğünüzün uygulamanızda nasıl içe aktarılacağını belirler.

    • 'static': Sözlük derleme zamanında statik olarak içe aktarılır. Bu varsayılan moddur.
    • 'dynamic': Sözlük, suspense API'sini kullanarak çalışma zamanında dinamik olarak içe aktarılır.
    • 'fetch': Sözlük, canlı senkronizasyon API'sini kullanarak dinamik olarak içe aktarılır.

    Ayarlanırsa, bu özellik intlayer.config.ts içinde tanımlanan global importMode'u geçersiz kılar.

    Sistem Özellikleri (Otomatik Oluşturuldu)

    Bu özellikler Intlayer tarafından otomatik olarak oluşturulur ve manuel olarak değiştirilmemelidir:

    $schema (string)

    Sözlük yapısının doğrulanması için kullanılan JSON şeması. Sözlük bütünlüğünü sağlamak için Intlayer tarafından otomatik olarak eklenir.

    id (string)

    Uzak sözlükler için, uzak sunucudaki sözlüğün benzersiz tanımlayıcısıdır. Uzak içeriğin getirilmesi ve yönetilmesi için kullanılır.

    localId (LocalDictionaryId)

    Yerel sözlükler için benzersiz tanımlayıcı. Sözlüğü tanımlamaya ve yerel mi yoksa uzak mı olduğunu, ayrıca konumunu belirlemeye yardımcı olmak için Intlayer tarafından otomatik olarak oluşturulur.

    localIds (LocalDictionaryId[])

    Birleştirilmiş sözlükler için, bu dizi birleştirilen tüm sözlüklerin kimliklerini içerir. Birleştirilmiş içeriğin kaynağını takip etmek için faydalıdır.

    filePath (string)

    Yerel sözlüğün dosya yolu, sözlüğün hangi .content dosyasından oluşturulduğunu gösterir. Hata ayıklama ve kaynak takibi için yardımcı olur.

    versions (string[])

    Uzak sözlükler için, bu dizi sözlüğün mevcut tüm sürümlerini içerir. Hangi sürümlerin kullanılabilir olduğunu takip etmeye yardımcı olur.

    autoFilled (true)

    Sözlüğün dış kaynaklardan otomatik olarak doldurulup doldurulmadığını belirtir. Çakışma durumunda, temel sözlükler otomatik doldurulan sözlüklerin üzerine yazacaktır.

    location ('distant' | 'locale')

    Sözlüğün konumunu belirtir:

    • 'locale': Yerel sözlük (içerik dosyalarından)
    • 'distant': Uzak sözlük (harici kaynaktan)

    İçerik Düğüm Türleri

    Intlayer, temel ilkel değerleri genişleten birkaç özel içerik düğüm türü sağlar:

    Çeviri İçeriği (t)

    Yerel dile göre değişen çok dilli içerik:

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    import { t } from "intlayer";// TypeScript/JavaScriptmultilingualContent: t({  en: "Welcome to our website",  fr: "Bienvenue sur notre site web",  es: "Bienvenido a nuestro sitio web",});
    See Çeviri İçeriği (t) Doc for more information.

    Koşul İçeriği (cond)

    Boolean koşullara göre değişen içerik:

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    import { cond } from "intlayer";conditionalContent: cond({  true: "User is logged in",  false: "Please log in to continue",});
    See Koşul İçeriği (cond) Doc for more information.

    Numaralandırma İçeriği (enu)

    Numaralandırılmış değerlere göre değişen içerik:

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    import { enu } from "intlayer";statusContent: enu({  pending: "İsteğiniz beklemede",  approved: "İsteğiniz onaylandı",  rejected: "İsteğiniz reddedildi",});
    See Numaralandırma İçeriği (enu) Doc for more information.

    Plural Content (plural)

    Content that varies based on plural rules:

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    import { plural } from "intlayer";pluralContent: plural({  one: "One car",  other: "{{count}} cars",});
    See Plural Content Doc for more information.

    Ekleme İçeriği (insert)

    Başka içeriklere eklenebilen içerik:

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    import { insert } from "intlayer";insertionContent: insert("Bu metin herhangi bir yere eklenebilir");
    See Ekleme İçeriği (insert) Doc for more information.

    İç İçe İçerik (nest)

    Diğer sözlüklere referanslar:

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    import { nest } from "intlayer";nestedContent: nest("about-page");
    See İç İçe İçerik (nest) Doc for more information.

    Markdown İçeriği (md)

    Markdown formatında zengin metin içeriği:

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    import { md } from "intlayer";markdownContent: md(  "# Hoşgeldiniz\n\nBu, [bağlantılar](https://example.com) içeren **kalın** metindir");
    See Markdown İçeriği (md) Doc for more information.

    HTML İçeriği (html)

    Standart etiketler veya özel bileşenler kullanabilen zengin HTML içeriği:

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    import { html, file, t } from "intlayer";// Satır içi HTMLhtmlContent: html("<p>Hello <strong>World</strong></p>");// Harici dosyalardan yerel dile göre HTMLlocalizedHtmlContent: t({  en: html(file("./content.en.html")),  tr: html(file("./content.tr.html")),});
    See HTML İçeriği (html) Doc for more information.

    Cinsiyete Göre İçerik (gender)

    Cinsiyete göre değişen içerik:

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    import { gender } from "intlayer";genderContent: gender({  male: "O bir geliştiricidir",  female: "O bir geliştiricidir",  other: "Onlar bir geliştiricidir",});
    See Cinsiyete Göre İçerik (gender) Doc for more information.

    Dosya İçeriği (file)

    Harici dosyalara referanslar:

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    import { file } from "intlayer";fileContent: file("./path/to/content.txt");
    See Dosya İçeriği (file) Doc for more information.

    İçerik Dosyaları Oluşturma

    Temel İçerik Dosyası Yapısı

    Bir içerik dosyası, Dictionary tipini karşılayan varsayılan bir nesne ihraç eder:

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    // example.content.tsimport { t, cond, nest, md, insert, file } from "intlayer";export default {  key: "welcome-page",  title: "Hoşgeldiniz Sayfası İçeriği",  description:    "Kahraman bölüm ve özellikler dahil olmak üzere ana karşılama sayfası için içerik",  tags: ["sayfa", "karşılama", "anasayfa"],  content: {    hero: {      title: t({        en: "Welcome to Our Platform",        fr: "Bienvenue sur Notre Plateforme",        es: "Bienvenido a Nuestra Plataforma",      }),      subtitle: t({        en: "Build amazing applications with ease",        fr: "Construisez des applications incroyables avec facilité",        es: "Construye aplicaciones increíbles con facilidad",      }),      cta: cond({        true: t({          en: "Get Started",          fr: "Commencer",          es: "Comenzar",        }),        false: t({          en: "Sign Up",          fr: "S'inscrire",          es: "Registrarse",        }),      }),    },    features: [      {        title: t({          en: "Easy to Use",          fr: "Facile à Utiliser",          es: "Fácil de Usar",        }),        description: t({          en: "Intuitive interface for all skill levels",          fr: "Interface intuitive pour tous les niveaux",          es: "Interfaz intuitiva para todos los niveles",        }),      },    ],    documentation: nest("documentation"),    readme: file("./README.md"),  },} satisfies Dictionary;

    JSON İçerik Dosyası

    İçerik dosyalarını JSON formatında da oluşturabilirsiniz:

    json
    Kodu kopyala

    Kodu panoya kopyala

    {  "key": "welcome-page",  "title": "Hoşgeldiniz Sayfası İçeriği",  "description": "Ana karşılama sayfası için içerik",  "tags": ["sayfa", "karşılama"],  "content": {    "hero": {      "title": {        "nodeType": "translation",        "translation": {          "en": "Platformumuza Hoş Geldiniz",          "fr": "Bienvenue sur Notre Plateforme"        }      },      "subtitle": {        "nodeType": "translation",        "translation": {          "en": "Harika uygulamaları kolayca oluşturun",          "fr": "Construisez des applications incroyables avec facilité"        }      }    }  }}

    Markdown İçerik Dosyası

    markdown
    Kodu kopyala

    Kodu panoya kopyala

    ---key: welcome-pagelocale: entitle: Welcome Page Contentdescription: Content for the main welcome pagetags:  - page  - welcome---# Welcome to Our Platform## Build amazing applications with ease

    YAML İçerik Dosyası

    yaml
    Kodu kopyala

    Kodu panoya kopyala

    key: welcome-pagetitle: Welcome Page Contentdescription: Content for the main welcome pagelocale: "en"tags:  - page  - welcomecontent:  hero:    title: Welcome to Our Platform    subtitle: Build amazing applications with ease

    Yerel İçerik Dosyaları

    Yerel sözlükler için locale özelliğini belirtin:

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    // welcome-page.en.content.tsexport default {  key: "welcome-page",  locale: "en",  content: {    hero: {      title: "Platformumuza Hoş Geldiniz",      subtitle: "Harika uygulamaları kolayca oluşturun",    },  },} satisfies Dictionary;
    typescript
    Kodu kopyala

    Kodu panoya kopyala

    // welcome-page.fr.content.tsexport default {  key: "welcome-page",  locale: "fr",  content: {    hero: {      title: "Bienvenue sur Notre Plateforme",      subtitle: "Construisez des applications incroyables avec facilité",    },  },} satisfies Dictionary;

    İçerik Dosyası Uzantıları

    Intlayer, içerik bildirim dosyalarınız için uzantıları özelleştirmenize olanak tanır. Bu özelleştirme, büyük ölçekli projeleri yönetmede esneklik sağlar ve diğer modüllerle çakışmaları önlemeye yardımcı olur.

    Varsayılan Uzantılar

    Varsayılan olarak, Intlayer içerik bildirimleri için aşağıdaki uzantılara sahip tüm dosyaları izler:

    • .content.json
    • .content.json5
    • .content.jsonc
    • .content.ts
    • .content.tsx
    • .content.js
    • .content.jsx
    • .content.mjs
    • .content.mjx
    • .content.cjs
    • .content.cjx
    • .content.md
    • .content.mdx
    • .content.yaml
    • .content.yml

    Bu varsayılan uzantılar çoğu uygulama için uygundur. Ancak, özel ihtiyaçlarınız olduğunda, derleme sürecini kolaylaştırmak ve diğer bileşenlerle çakışma riskini azaltmak için özel uzantılar tanımlayabilirsiniz.

    Intlayer'ın içerik bildirim dosyalarını tanımlamak için kullandığı dosya uzantılarını özelleştirmek için, bunları Intlayer yapılandırma dosyasında belirtebilirsiniz. Bu yaklaşım, izleme işleminin kapsamını sınırlamanın derleme performansını artırdığı büyük ölçekli projeler için faydalıdır.

    Gelişmiş Kavramlar

    Sözlük Birleştirme

    Birden fazla sözlük aynı anahtara sahip olduğunda, Intlayer bunları otomatik olarak birleştirir. Birleştirme davranışı birkaç faktöre bağlıdır:

    • Öncelik: Daha yüksek priority değerine sahip sözlükler, daha düşük değerlere sahip olanların yerine geçer
    • Otomatik doldurma vs Temel: Temel sözlükler, otomatik doldurulan sözlüklerin üzerine yazar
    • Konum: Yerel sözlükler, öncelikler eşit olduğunda uzak sözlüklerin üzerine yazar

    Tür Güvenliği

    Intlayer, içerik dosyaları için tam TypeScript desteği sağlar:

    typescript
    Kodu kopyala

    Kodu panoya kopyala

    // İçerik türünüzü tanımlayıninterface WelcomePageContent {  hero: {    title: string;    subtitle: string;    cta: string;  };  features: Array<{    title: string;    description: string;  }>;}// Sözlüğünüzde kullanınexport default {  key: "welcome-page",  content: {    // TypeScript otomatik tamamlama ve tür denetimi sağlar    hero: {      title: "Hoşgeldiniz",      subtitle: "Harika uygulamalar geliştirin",      cta: "Başlayın",    },  },} satisfies Dictionary<WelcomePageContent>;

    Düğüm İç İçe Geçirme

    Fonksiyonları sorunsuzca birbirinin içine yerleştirebilirsiniz.

    Örnek:

    src/example.content.tsx
    Kodu kopyala

    Kodu panoya kopyala

    import { t, enu, cond, nest, md, type Dictionary } from "intlayer";
    
    const getName = async () => "John Doe";
    
    export default {
      key: "page",
      content: {
        // `getIntlayer('page','en').hiMessage` `['Hi', ' ', 'John Doe']` döner
        hiMessage: [
          t({
            en: "Hi",
            fr: "Salut",
            es: "Hola",
          }),
          " ",
          getName(),
        ],
        // Koşul, numaralandırma ve çok dilli içeriği iç içe geçiren bileşik içerik
        // `getIntlayer('page','en').advancedContent(true)(10)` 'Multiple items found' döner
        advancedContent: cond({
          true: enu({
            "0": t({
              en: "No items found",
              fr: "Aucun article trouvé",
              es: "No se encontraron artículos",
            }),
            "1": t({
              en: "One item found",
              fr: "Un article trouvé",
              es: "Se encontró un artículo",
            }),
            ">1": t({
              en: "Multiple items found",
              fr: "Plusieurs articles trouvés",
              es: "Se encontraron múltiples artículos",
            }),
          }),
          false: t({
            en: "No valid data available",
            fr: "Aucune donnée valide disponible",
            es: "No hay datos válidos disponibles",
          }),
        }),
      },
    } satisfies Dictionary;

    En İyi Uygulamalar

    1. İsimlendirme Kuralları:

      • Sözlük anahtarları için kebab-case kullanın ("about-page-meta")
      • İlgili içeriği aynı anahtar ön eki altında gruplayın
    2. İçerik Organizasyonu:

      • İlgili içeriği aynı sözlükte birlikte tutun
      • Karmaşık içerik yapıları için iç içe nesneler kullanın
      • Kategorilendirme için etiketlerden yararlanın
      • Eksik çevirileri otomatik doldurmak için autoFill kullanın
    3. Performans:

      • İzlenen dosyaların kapsamını sınırlamak için içerik yapılandırmasını ayarlayın
      • Gerçek zamanlı güncellemeler gerektiğinde (örneğin A/B testi vb.) yalnızca canlı sözlükleri kullanın
      • Sözlüğü derleme zamanında optimize etmek için derleme dönüşüm eklentisinin (@intlayer/swc veya @intlayer/babel) etkin olduğundan emin olun
    CI/CD Entegrasyonu
    Çeviri
    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.

      {  key: "about-page-meta",  title: "Hakkında Sayfası Meta Verileri",  content: { /* ... */ }}
      {  key: "about-page-meta",  description: [    "Bu sözlük Hakkında Sayfasının meta verilerini yönetir",    "SEO için iyi uygulamalar göz önünde bulundurulmalı:",    "- Başlık 50 ile 60 karakter arasında olmalıdır",    "- Açıklama 150 ile 160 karakter arasında olmalıdır",  ].join('\n'),  content: { /* ... */ }}
      {  key: "about-page-meta",  tags: ["metadata", "about-page", "seo"],  content: { /* ... */ }}
      {  key: "my-dictionary",  format: "icu",  content: {    message: "Hello {name}, you have {count, plural, one {# message} other {# messages}}"  }}
      {  key: "my-dictionary",  format: "icu",  content: {    message: "Hello {name}, you have {count, plural, one {# message} other {# messages}}"  }}
      // Yerel dil bazlı sözlük{  "key": "about-page",  "locale": "en",  "content": {    "title": "About Us", // Bu 'en' için bir çeviri düğümü olur    "description": "Learn more about our company"  }}
      import { z } from "zod";export default {  schemas: {    "seo-metadata": z.object({      title: z.string().min(50).max(60),      description: z.string().min(150).max(160),    }),  },};
      import { type Dictionary } from "intlayer";const aboutPageMetaContent = {  key: "about-page-meta",  schema: "seo-metadata",  content: {    title: "About Our Company - Learn More About Us",    description: "Discover our company's mission, values, and team.",  },} satisfies Dictionary;export default aboutPageMetaContent;
      {  key: "about-page",  location: "local", // İçerik yalnızca kod tabanınızda kalır  content: {    title: "About Us"  }}
      // Tüm yerel diller için etkinleştir{  "autoFill": true}// Tek dosya{  "autoFill": "./translations/aboutPage.content.json"}// Değişkenlerle şablon{  "autoFill": "/messages/{{locale}}/{{key}}/{{fileName}}.content.json"}// Yerel dil bazında detaylı yapılandırma{  "autoFill": {    "en": "./translations/en/aboutPage.content.json",    "fr": "./translations/fr/aboutPage.content.json",    "es": "./translations/es/aboutPage.content.json"  }}
      // Temel sözlük{  key: "welcome-message",  priority: 1,  content: { message: "Hoş geldiniz!" }}// Geçersiz kılma sözlüğü{  key: "welcome-message",  priority: 10,  content: { message: "Premium hizmetimize hoş geldiniz!" }}// Bu, temel sözlüğün üzerine yazacaktır
      import { t } from "intlayer";// TypeScript/JavaScriptmultilingualContent: t({  en: "Welcome to our website",  fr: "Bienvenue sur notre site web",  es: "Bienvenido a nuestro sitio web",});
      import { cond } from "intlayer";conditionalContent: cond({  true: "User is logged in",  false: "Please log in to continue",});
      import { enu } from "intlayer";statusContent: enu({  pending: "İsteğiniz beklemede",  approved: "İsteğiniz onaylandı",  rejected: "İsteğiniz reddedildi",});
      import { plural } from "intlayer";pluralContent: plural({  one: "One car",  other: "{{count}} cars",});
      import { insert } from "intlayer";insertionContent: insert("Bu metin herhangi bir yere eklenebilir");
      import { nest } from "intlayer";nestedContent: nest("about-page");
      import { md } from "intlayer";markdownContent: md(  "# Hoşgeldiniz\n\nBu, [bağlantılar](https://example.com) içeren **kalın** metindir");
      import { html, file, t } from "intlayer";// Satır içi HTMLhtmlContent: html("<p>Hello <strong>World</strong></p>");// Harici dosyalardan yerel dile göre HTMLlocalizedHtmlContent: t({  en: html(file("./content.en.html")),  tr: html(file("./content.tr.html")),});
      import { gender } from "intlayer";genderContent: gender({  male: "O bir geliştiricidir",  female: "O bir geliştiricidir",  other: "Onlar bir geliştiricidir",});
      import { file } from "intlayer";fileContent: file("./path/to/content.txt");
      // example.content.tsimport { t, cond, nest, md, insert, file } from "intlayer";export default {  key: "welcome-page",  title: "Hoşgeldiniz Sayfası İçeriği",  description:    "Kahraman bölüm ve özellikler dahil olmak üzere ana karşılama sayfası için içerik",  tags: ["sayfa", "karşılama", "anasayfa"],  content: {    hero: {      title: t({        en: "Welcome to Our Platform",        fr: "Bienvenue sur Notre Plateforme",        es: "Bienvenido a Nuestra Plataforma",      }),      subtitle: t({        en: "Build amazing applications with ease",        fr: "Construisez des applications incroyables avec facilité",        es: "Construye aplicaciones increíbles con facilidad",      }),      cta: cond({        true: t({          en: "Get Started",          fr: "Commencer",          es: "Comenzar",        }),        false: t({          en: "Sign Up",          fr: "S'inscrire",          es: "Registrarse",        }),      }),    },    features: [      {        title: t({          en: "Easy to Use",          fr: "Facile à Utiliser",          es: "Fácil de Usar",        }),        description: t({          en: "Intuitive interface for all skill levels",          fr: "Interface intuitive pour tous les niveaux",          es: "Interfaz intuitiva para todos los niveles",        }),      },    ],    documentation: nest("documentation"),    readme: file("./README.md"),  },} satisfies Dictionary;
      {  "key": "welcome-page",  "title": "Hoşgeldiniz Sayfası İçeriği",  "description": "Ana karşılama sayfası için içerik",  "tags": ["sayfa", "karşılama"],  "content": {    "hero": {      "title": {        "nodeType": "translation",        "translation": {          "en": "Platformumuza Hoş Geldiniz",          "fr": "Bienvenue sur Notre Plateforme"        }      },      "subtitle": {        "nodeType": "translation",        "translation": {          "en": "Harika uygulamaları kolayca oluşturun",          "fr": "Construisez des applications incroyables avec facilité"        }      }    }  }}
      ---key: welcome-pagelocale: entitle: Welcome Page Contentdescription: Content for the main welcome pagetags:  - page  - welcome---# Welcome to Our Platform## Build amazing applications with ease
      key: welcome-pagetitle: Welcome Page Contentdescription: Content for the main welcome pagelocale: "en"tags:  - page  - welcomecontent:  hero:    title: Welcome to Our Platform    subtitle: Build amazing applications with ease
      // welcome-page.en.content.tsexport default {  key: "welcome-page",  locale: "en",  content: {    hero: {      title: "Platformumuza Hoş Geldiniz",      subtitle: "Harika uygulamaları kolayca oluşturun",    },  },} satisfies Dictionary;
      // welcome-page.fr.content.tsexport default {  key: "welcome-page",  locale: "fr",  content: {    hero: {      title: "Bienvenue sur Notre Plateforme",      subtitle: "Construisez des applications incroyables avec facilité",    },  },} satisfies Dictionary;
      // İçerik türünüzü tanımlayıninterface WelcomePageContent {  hero: {    title: string;    subtitle: string;    cta: string;  };  features: Array<{    title: string;    description: string;  }>;}// Sözlüğünüzde kullanınexport default {  key: "welcome-page",  content: {    // TypeScript otomatik tamamlama ve tür denetimi sağlar    hero: {      title: "Hoşgeldiniz",      subtitle: "Harika uygulamalar geliştirin",      cta: "Başlayın",    },  },} satisfies Dictionary<WelcomePageContent>;