Yazar:
    Oluşturma:2026-06-12Son güncelleme:2026-06-12

    Dinamik Kayıtlar

    Bir dinamik kayıt (dynamic record), kimliği sıralı bir dizin (index) veya adlandırılmış bir varyant olmayan, bunun yerine bir meta alanında bildirilen rastgele anahtar-değer çiftleri kümesi olan bir içerik dosyasıdır. Intlayer, çalışma zamanında (runtime) bu alanları seçici olarak kullanır. Bu sayede CMS kayıtlarını, kullanıcıya özel metinleri veya derleme zamanında anahtarları bilinmeyen herhangi bir içeriği adreslemeyi mümkün kılar.

    Dinamik kayıtları bildirme

    product-copy.abc.content.ts
    import { t, type Dictionary } from "intlayer";
    
    const dictionary = {
      key: "product-copy",
      meta: {
        id: "prod_abc",
        userId: "user_123",
      },
      content: {
        name: t({ en: "Widget Pro", fr: "Widget Pro" }),
        description: t({ en: "The best widget.", fr: "Le meilleur widget." }),
      },
    } satisfies Dictionary;
    
    export default dictionary;
    product-copy.abcd.content.ts
    import { t, type Dictionary } from "intlayer";
    
    const dictionary = {
      key: "product-copy",
      meta: {
        id: "prod_abcd",
        userId: "user_123",
      },
      content: {
        name: t({ en: "Widget Lite", fr: "Widget Lite" }),
        description: t({ en: "A lighter option.", fr: "Une option plus légère." }),
      },
    } satisfies Dictionary;
    
    export default dictionary;

    Dinamik kayıtları tüketme

    Seçicide tüm meta alanları zorunludur. Herhangi bir alanın atlanması null döndürür ve bir TypeScript hatasıdır.

    ProductCopy.tsx
    import { useIntlayer } from "react-intlayer";
    
    export const ProductCopy = ({
      productId,
      userId,
    }: {
      productId: string;
      userId: string;
    }) => {
      const content = useIntlayer("product-copy", { id: productId, userId });
      // TypeScript hem `id` hem de `userId` alanlarının sağlanmasını zorunlu kılar.
    
      if (!content) return null;
    
      return <p>{content.description}</p>;
    };

    Belirli dil seçeneği ile

    tsx
    const content = useIntlayer("product-copy", {  id: "prod_abc",  userId: "user_123",  locale: "tr",});

    Eksik meta alanı — derleme zamanı hatası

    ts
    // Tip hatası: `userId` eksikconst content = useIntlayer("product-copy", { id: "prod_abc" });

    Yükleme modu (loading mode)

    Dinamik kayıtlar genellikle geç (lazy) yüklenir. Bunu kontrol etmek için sözlükte importMode alanını ayarlayın:

    ts
    const dictionary = {
      key: "product-copy",
      importMode: "fetch", // veya "dynamic"
      meta: { id: "prod_abc", userId: "user_123" },
      content: { … },
    } satisfies Dictionary;
    
    export default dictionary;

    static, dynamic ve fetch modları hakkında ayrıntılı bilgi için paket optimizasyonu sayfasına bakın.

    Tipik kullanım senaryoları

    • Bir CMS'de yönetilen ürün başına pazarlama metinleri
    • Kullanıcıya veya hesaba özel içerik
    • Çalışma zamanında opak bir kimlikle (ID) anahtarlanan tüm içerikler