Author:
    Creation:2026-08-23Last update:2026-09-28

    दस्तावेज़: intlayer में getIntlayerAsync फ़ंक्शन

    विवरण

    getIntlayerAsync फ़ंक्शन अपनी key के आधार पर एक डिक्शनरी चुनता है और दिए गए locale के लिए उसकी content को resolve करता है, केवल उस locale को लोड करते हुए।

    यह getIntlayer का asynchronous counterpart है, जिसका उपयोग उन जगहों पर किया जाता है जहां डिक्शनरी rendering के बाहर पढ़ी जाती है, route head / metadata builders, loaders, server functions।

    जहां getIntlayer merged डिक्शनरी को pull करता है जिसमें हर locale है, वहीं build plugins (@intlayer/babel, @intlayer/swc) इस call को getDictionaryAsync(loaderMap, key, locale) में rewrite करते हैं, जो .intlayer/dynamic_dictionaries/ में per-locale chunks की ओर इशारा करते हैं। इसलिए bundle केवल वास्तव में अनुरोधित locale को ही carry करता है।

    इन plugins के बिना, एक unoptimized build, call synchronous dictionary registry के माध्यम से resolve होती है: वही content, per-locale split के बिना।

    मुख्य विशेषताएं:

    • getIntlayer के समान typed keys, selectors और returned content
    • Optimized builds में केवल अनुरोधित locale chunk को load करता है
    • एक ही chunk के लिए Concurrent calls एक single load share करती हैं
    • async metadata builders, loaders और server functions में उपयोग के लिए सुरक्षित

    फ़ंक्शन सिग्नेचर

    typescript
    getIntlayerAsync(
      key: DictionaryKeys,                        // आवश्यक
      localeOrSelector?: LocalesValues | DictionarySelector, // वैकल्पिक
      plugins?: Plugins[]                         // वैकल्पिक
    ): Promise<DeepTransformContent<...>>
    

    पैरामीटर

    • key: DictionaryKeys

      • विवरण: डिक्शनरी की कुंजी जिसे पढ़ना है, जैसा कि आपकी content files में घोषित किया गया है।
      • प्रकार: DictionaryKeys, हर घोषित डिक्शनरी कुंजी का एक union।
      • आवश्यक: हाँ
    • localeOrSelector: LocalesValues | DictionarySelector

      • विवरण: content को interpret करने के लिए locale, या dynamic dictionaries के लिए एक selector object।
        • 'fr': एक locale
        • { item: 2 }: एक collection item (हर item को array के रूप में पाने के लिए item को omit करें)
        • { variant: 'black-friday' }: एक नाम दिया गया variant (default के लिए omit करें)
        • { variant: { id: 'prod_abc', userId: '123' } }: एक structured variant
        • कोई भी selector एक locale ले सकता है: { item: 2, locale: 'fr' }
      • प्रकार: LocalesValues | DictionarySelector
      • आवश्यक: नहीं (वैकल्पिक)। छोड़ने पर, यह getIntlayer की तरह resolve होता है (request का locale, फिर संग्रहीत locale, फिर defaultLocale)। asynchronous होने के कारण, यह request के locale की प्रतीक्षा भी कर सकता है जब वह केवल asynchronous रूप से पढ़ा जा सके: Next.js Server Components, generateMetadata और route handlers में, यह request के headers() और cookies() पढ़ता है, जैसे next-intlayer/server का getLocale()। यह पढ़ना route को dynamic rendering में ले जाता है, इसलिए यह तभी होता है जब IntlayerProvider ने पहले से locale न दिया हो।
    • plugins: Plugins[]

      • विवरण: Custom node transformers जो base interpreter plugins को replace करते हैं। Advanced use only।
      • प्रकार: Plugins[]
      • आवश्यक: नहीं (Optional)

    Returns

    • प्रकार: Promise<Content>, एक promise जो आपकी घोषणा से टाइप किए गए dictionary की interpreted content को resolve करता है।

    उदाहरण उपयोग

    बुनियादी उपयोग

    typescript
    import { getIntlayerAsync } from "intlayer";
    
    const { title } = await getIntlayerAsync("app", "fr"); // "Bonjour"
    

    getIntlayer vs getIntlayerAsync

    getIntlayergetIntlayerAsync
    Returnsसामग्रीसामग्री का एक promise
    Dictionary loadedमर्ज किया गया शब्दकोश (सभी locales)केवल अनुरोधित locale का chunk
    Best suited forRendering, synchronous code pathsMetadata, loaders, server functions
    Requires a plugin?नहींनहीं, per-locale split को build plugins की आवश्यकता है

    दोनों एक ही arguments स्वीकार करते हैं और एक ही सामग्री return करते हैं: एक से दूसरे में स्विच करने से केवल कब और कितना load होता है, यह बदलता है।

    संबंधित Functions

    TypeScript

    typescript
    function getIntlayerAsync<
      const T extends DictionaryKeys,
      const A extends LocalesValues | DictionarySelector = DeclaredLocales,
    >(
      key: T,
      localeOrSelector?: A,
      plugins?: Plugins[]
    ): Promise<
      DeepTransformContent<
        DictionaryRegistryResult<T, A>,
        IInterpreterPluginState,
        ExtractSelectorLocale<A>
      >
    >;