Author:
    Creation:2026-06-12Last update:2026-06-12

    डायनेमिक रिकॉर्ड्स (Dynamic Records)

    एक डायनेमिक रिकॉर्ड (dynamic record) एक कंटेंट फ़ाइल है जिसकी पहचान एक अनुक्रमिक इंडेक्स या एक नामांकित वेरिएंट नहीं है, बल्कि एक meta फ़ील्ड में घोषित कुंजी-मान (key-value) जोड़े का एक मनमाना सेट है। Intlayer इन फ़ील्ड्स का उपयोग रनटाइम पर चयनकर्ता (selector) के रूप में करता है, जिससे सीएमएस रिकॉर्ड्स, उपयोगकर्ता-विशिष्ट कॉपी, या किसी भी कंटेंट को संबोधित करना संभव हो जाता है जिसकी कुंजियाँ बिल्ड टाइम पर ज्ञात नहीं होती हैं।

    डायनेमिक रिकॉर्ड घोषित करना

    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;

    डायनेमिक रिकॉर्ड का उपयोग करना

    चयनकर्ता में सभी meta फ़ील्ड आवश्यक हैं। किसी भी फ़ील्ड को छोड़ने पर null प्राप्त होता है और यह एक TypeScript त्रुटि है।

    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 लागू करता है कि id और userId दोनों प्रदान किए जाएं।
    
      if (!content) return null;
    
      return <p>{content.description}</p>;
    };

    स्पष्ट भाषा विकल्प के साथ

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

    अनुपलब्ध मेटा फ़ील्ड — कंपाइल-टाइम त्रुटि

    ts
    // प्रकार त्रुटि: `userId` अनुपलब्ध हैconst content = useIntlayer("product-copy", { id: "prod_abc" });

    लोडिंग मोड

    डायनेमिक रिकॉर्ड्स को आमतौर पर आलसी तरीके से (lazily) लोड किया जाता है। इसे नियंत्रित करने के लिए डिक्शनरी पर importMode सेट करें:

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

    स्थिर (static), गतिशील (dynamic), और फ़ेच (fetch) मोड के विवरण के लिए बंडल अनुकूलन देखें।

    विशिष्ट उपयोग के मामले

    • सीएमएस में प्रबंधित प्रति-उत्पाद विपणन कॉपी (marketing copy)
    • उपयोगकर्ता-विशिष्ट या खाता-विशिष्ट कंटेंट
    • एक अपारदर्शी रनटाइम आईडी द्वारा कुंजीकृत कोई भी कंटेंट