\n\n \n ```\n\n \n \n ```svelte fileName=\"ProductCopy.svelte\" contentDeclarationFormat={[\"typescript\", \"esm\", \"commonjs\"]}\n \n\n {#if $content}\n

{$content.description}

\n {/if}\n ```\n\n
\n \n ```tsx fileName=\"ProductCopy.tsx\" contentDeclarationFormat={[\"typescript\", \"esm\", \"commonjs\"]}\n import { useIntlayer } from \"preact-intlayer\";\n\n export const ProductCopy = ({\n productId,\n userId,\n }: {\n productId: string;\n userId: string;\n }) => {\n const content = useIntlayer(\"product-copy\", { id: productId, userId });\n // TypeScript hem `id` hem de `userId` alanlarının sağlanmasını zorunlu kılar.\n\n if (!content) return null;\n\n return

{content.description}

;\n };\n ```\n\n
\n \n ```tsx fileName=\"ProductCopy.tsx\" contentDeclarationFormat={[\"typescript\", \"esm\", \"commonjs\"]}\n import { useIntlayer } from \"solid-intlayer\";\n\n export const ProductCopy = (props: {\n productId: string;\n userId: string;\n }) => {\n const content = useIntlayer(\"product-copy\", { id: props.productId, userId: props.userId });\n // TypeScript hem `id` hem de `userId` alanlarının sağlanmasını zorunlu kılar.\n\n return (\n <>\n {content() &&

{content().description}

}\n \n );\n };\n ```\n\n
\n \n ```typescript fileName=\"product-copy.component.ts\" contentDeclarationFormat={[\"typescript\", \"esm\", \"commonjs\"]}\n import { Component, Input, OnInit } from \"@angular/core\";\n import { useIntlayer } from \"angular-intlayer\";\n\n @Component({\n selector: \"app-product-copy\",\n template: `\n @if (content()) {\n

{{ content().description }}

\n }\n `,\n })\n export class ProductCopyComponent implements OnInit {\n @Input() productId!: string;\n @Input() userId!: string;\n\n content: any;\n\n ngOnInit() {\n this.content = useIntlayer(\"product-copy\", { id: this.productId, userId: this.userId });\n }\n }\n ```\n\n
\n \n ```javascript fileName=\"product-copy.js\"\n import { useIntlayer } from \"vanilla-intlayer\";\n\n const content = useIntlayer(\"product-copy\", {\n id: \"prod_abcd\",\n userId: \"user_123\"\n });\n\n if (content) {\n document.body.innerHTML = `

${content.description}

`;\n }\n ```\n\n
\n\n\n### Belirli dil seçeneği ile\n\n```tsx\nconst content = useIntlayer(\"product-copy\", {\n id: \"prod_abc\",\n userId: \"user_123\",\n locale: \"tr\",\n});\n```\n\n### Eksik meta alanı — derleme zamanı hatası\n\n```ts\n// Tip hatası: `userId` eksik\nconst content = useIntlayer(\"product-copy\", { id: \"prod_abc\" });\n```\n\n## Yükleme modu (loading mode)\n\nDinamik kayıtlar genellikle geç (lazy) yüklenir. Bunu kontrol etmek için sözlükte `importMode` alanını ayarlayın:\n\n```ts contentDeclarationFormat={[\"typescript\", \"esm\", \"commonjs\"]}\nconst dictionary = {\n key: \"product-copy\",\n importMode: \"fetch\", // veya \"dynamic\"\n meta: { id: \"prod_abc\", userId: \"user_123\" },\n content: { … },\n} satisfies Dictionary;\n\nexport default dictionary;\n```\n\n`static`, `dynamic` ve `fetch` modları hakkında ayrıntılı bilgi için [paket optimizasyonu](/tr/doc/concept/bundle-optimization) sayfasına bakın.\n\n## Tipik kullanım senaryoları\n\n- Bir CMS'de yönetilen ürün başına pazarlama metinleri\n- Kullanıcıya veya hesaba özel içerik\n- Çalışma zamanında opak bir kimlikle (ID) anahtarlanan tüm içerikler\n","description":"Derleme zamanı numaralandırması olmadan kesin tür atanmış (strongly-typed) dinamik içerik sağlamak üzere çalışma zamanında opak bir ID ile getirilen CMS yönetimli kayıtları bildirmek için Intlayer içerik dosyalarındaki meta alanını kullanın.","url":"https://intlayer.org/tr/doc/concept/dynamic-records","datePublished":"2026-06-12","dateModified":"2026-06-12","version":"9.0.0","keywords":"Dinamik Kayıtlar, Dinamik İçerik, CMS, Çalışma Zamanı İçeriği, Intlayer, Uluslararasılaştırma","license":"https://raw.githubusercontent.com/aymericzip/intlayer/refs/heads/main/LICENSE","audience":{"@type":"Audience","audienceType":"Geliştiriciler, İçerik Yöneticileri"}}
    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