--- createdAt: 2025-09-22 updatedAt: 2025-09-23 title: नया Intlayer v7 - क्या नया है? description: जानिए Intlayer v7 में क्या नया है। प्रदर्शन, डेवलपर अनुभव, और आपके अंतरराष्ट्रीयकरण वर्कफ़्लो को बेहतर बनाने के लिए नई विशेषताओं में प्रमुख सुधार। keywords: - Intlayer - स्थानीयकरण - विकास - प्रदर्शन - डेवलपर अनुभव - विशेषताएं - React - Next.js - JavaScript - TypeScript slugs: - doc - releases - v7 --- # नया Intlayer v7 - क्या नया है? Intlayer v7 में आपका स्वागत है! यह प्रमुख रिलीज़ प्रदर्शन, टाइप सुरक्षा, और डेवलपर अनुभव में महत्वपूर्ण सुधार लाती है। नीचे मुख्य बिंदु दिए गए हैं, साथ ही माइग्रेशन नोट्स और व्यावहारिक उदाहरण। ## मुख्य बिंदु - तेज़ बिल्ड के लिए कैशिंग रणनीति - बेहतर TypeScript टाइप जनरेशन लोकल-विशिष्ट टाइप्स के साथ - बंडल अनुकूलन: लोकल्स को enum के बजाय स्ट्रिंग्स के रूप में - नए रूटिंग मोड्स: `prefix-no-default`, `prefix-all`, `no-prefix`, `search-params` - GDPR-अनुपालन लोकल स्टोरेज, डिफ़ॉल्ट के रूप में localStorage के साथ - लचीला स्टोरेज कॉन्फ़िगरेशन: कुकीज़, localStorage, sessionStorage, या कई विकल्प - विजुअल एडिटर पैकेज का आकार 30% छोटा - बेहतर मिडलवेयर कॉन्फ़िगरेशन विकल्प - बेहतर कंटेंट प्रबंधन के लिए अपडेटेड fill कमांड व्यवहार - पूर्ण कंटेंट घोषणा फ़ाइल अपडेट के साथ बेहतर स्थिरता - अनुवाद की सटीकता के लिए बुद्धिमान पुनः प्रयास प्रबंधन - तेज़ अनुवाद प्रसंस्करण के लिए समानांतरता - AI संदर्भ सीमाओं के भीतर बड़े फ़ाइलों को संभालने के लिए स्मार्ट chunking --- ## प्रदर्शन: तेज़ बिल्ड के लिए कैशिंग esbuild के साथ हर बिल्ड पर कंटेंट घोषणाओं को फिर से बनाने के बजाय, v7 एक कैशिंग रणनीति लागू करता है जो बिल्ड प्रक्रिया को तेज़ करता है। ```bash npx intlayer build ``` नई कैशिंग प्रणाली: - अनावश्यक प्रोसेसिंग से बचने के लिए संकलित कंटेंट घोषणाओं को संग्रहीत करता है - परिवर्तनों का पता लगाता है और केवल संशोधित फ़ाइलों को पुनर्निर्मित करता है - बड़े प्रोजेक्ट्स के लिए बिल्ड समय को काफी कम करता है --- ## TypeScript: लोकल-विशिष्ट टाइप जनरेशन TypeScript टाइप अब प्रत्येक लोकल के लिए उत्पन्न होते हैं, जो मजबूत टाइपिंग प्रदान करते हैं और सभी लोकल्स में यूनियन टाइप्स को समाप्त करते हैं। **v6 व्यवहार:** ```tsx const content = getIntlayer("my-title-content", "en"); // typeof content = { title: "My title" } | { title: "Mon titre" } | { title: "Mi título" } ``` **v7 व्यवहार:** ```tsx const content = getIntlayer("my-title-content", "en"); // typeof content = { title: "My title" } ``` लाभ: - आपके IDE में अधिक सटीक ऑटोकंप्लीट - बेहतर टाइप सुरक्षा बिना क्रॉस-लोकल टाइप प्रदूषण के - टाइप जटिलता को कम करके बेहतर प्रदर्शन --- ## बंडल अनुकूलन: लोकल्स को स्ट्रिंग्स के रूप में `Locales` टाइप अब एक enum नहीं है, जिसका मतलब है कि यह अब पूरी तरह से ट्री-शेकेबल है और आपके बंडल को हजारों अप्रयुक्त लोकल रिकॉर्ड्स से भारी नहीं करेगा। **v6:** ```typescript import { Locales } from "intlayer"; // सभी लोकल्स शामिल करने वाला enum -> ट्री-शेकेबल नहीं const locale: Locales = Locales.ENGLISH; ``` **v7:** ```typescript import { Locales, Locale } from "intlayer"; // स्ट्रिंग टाइप -> पूरी तरह से ट्री-शेकेबल const locale: Locale = Locales.ENGLISH; ``` > क्योंकि `Locales` अब एक enum नहीं है, आपको टाइप को `Locales` से `Locale` में बदलना होगा ताकि आप लोकल को एक टाइप के रूप में प्राप्त कर सकें। अधिक जानकारी के लिए [इम्प्लीमेंटेशन विवरण](https://github.com/aymericzip/intlayer/blob/main/packages/%40intlayer/types/src/index.ts) देखें। --- ## अधिक लचीलापन के लिए नए रूटिंग मोड v7 एक एकीकृत `routing.mode` कॉन्फ़िगरेशन पेश करता है जो पिछले `prefixDefault` और `noPrefix` विकल्पों को बदलता है, जिससे URL संरचना पर अधिक सूक्ष्म नियंत्रण मिलता है। ### उपलब्ध रूटिंग मोड - **`prefix-no-default`** (डिफ़ॉल्ट): डिफ़ॉल्ट लोकल में कोई प्रीफिक्स नहीं होता, अन्य लोकल्स में होता है - `/dashboard` (en) या `/fr/dashboard` (fr) - **`prefix-all`**: सभी लोकल्स में प्रीफिक्स होता है - `/en/dashboard` (en) या `/fr/dashboard` (fr)` - **`no-prefix`**: URL में कोई लोकल प्रीफिक्स नहीं (लोकल स्टोरेज/हेडर के माध्यम से संभाला जाता है) - सभी लोकल्स के लिए `/dashboard` - **`search-params`**: लोकल को क्वेरी पैरामीटर के रूप में पास किया जाता है - `/dashboard?locale=en` या `/dashboard?locale=fr` ### बुनियादी कॉन्फ़िगरेशन ```typescript // intlayer.config.ts export default { internationalization: { locales: ["en", "fr", "es"], defaultLocale: "en", }, routing: { mode: "prefix-no-default", // डिफ़ॉल्ट }, }; ``` --- ## GDPR अनुपालन: localStorage / कुकीज़ स्टोरेज v7 उपयोगकर्ता की गोपनीयता को प्राथमिकता देता है और कुकीज़ के बजाय `localStorage` को डिफ़ॉल्ट स्टोरेज तंत्र के रूप में उपयोग करता है। यह बदलाव लोकल प्राथमिकताओं के लिए कुकी सहमति आवश्यकताओं से बचकर GDPR अनुपालन में मदद करता है। ### स्टोरेज कॉन्फ़िगरेशन विकल्प नया `routing.storage` फ़ील्ड पिछले `middleware.cookieName` और `middleware.serverSetCookie` विकल्पों के अतिरिक्त भी उपलब्ध है, जो लचीली स्टोरेज कॉन्फ़िगरेशन प्रदान करता है: ```typescript // स्टोरेज अक्षम करें storage: false // सरल स्टोरेज प्रकार storage: 'cookie' storage: 'localStorage' storage: 'sessionStorage' // कस्टम विशेषताओं के साथ कुकी storage: { type: 'cookie', name: 'custom-locale', domain: '.example.com', secure: true, sameSite: 'strict' } // कस्टम कुंजी के साथ localStorage storage: { type: 'localStorage', name: 'custom-locale' } // पुनरावृत्ति के लिए कई स्टोरेज प्रकार storage: ['cookie', 'localStorage'] ``` ### GDPR-अनुपालन कॉन्फ़िगरेशन उदाहरण उत्पादन अनुप्रयोगों के लिए जिन्हें कार्यक्षमता और GDPR अनुपालन के बीच संतुलन बनाना होता है: ```typescript // intlayer.config.ts export default { internationalization: { locales: ["en", "fr", "es"], defaultLocale: "en", }, routing: { mode: "prefix-no-default", storage: [ { type: "localStorage", // प्राथमिक स्टोरेज (कोई सहमति आवश्यक नहीं) name: "user-locale", }, { type: "cookie", // वैकल्पिक कुकी स्टोरेज (सहमति आवश्यक) name: "user-locale", secure: true, sameSite: "strict", httpOnly: false, }, ], }, }; ``` ### कुकी स्टोरेज सक्षम / अक्षम करें React / Next.js का उपयोग करते हुए उदाहरण: ग्लोबली परिभाषित किया जा सकता है: ```typescript ``` प्रत्येक हुक के लिए स्थानीय रूप से ओवरराइड किया जा सकता है: ```ts const { setLocale } = useLocale({ isCookieEnabled: false }); setLocale("en"); ``` **नोट:** कुकीज़ डिफ़ॉल्ट रूप से सक्षम हैं। **नोट:** अपने विशिष्ट उपयोग के लिए [GDPR कुकी आवश्यकताओं](https://gdpr.eu/cookies/) की जांच करें। --- ## विज़ुअल एडिटर: 30% छोटा पैकेज विज़ुअल एडिटर पैकेज को पिछले संस्करण की तुलना में 30% छोटा करने के लिए अनुकूलित किया गया है, इसके कारण: - कोड एडिटर प्रदर्शन में सुधार - Intlayer कोर पैकेजों पर अनावश्यक निर्भरताओं को हटाना - बेहतर ट्री-शेकिंग और मॉड्यूल बंडलिंग इससे आपके एप्लिकेशन के लिए डाउनलोड समय तेज़ होता है और रनटाइम प्रदर्शन में सुधार होता है। --- ## Fill कमांड: बेहतर कंटेंट प्रबंधन के लिए अपडेटेड व्यवहार v7 में `fill` कमांड के लिए बेहतर व्यवहार पेश किया गया है, जो अधिक पूर्वानुमेय और लचीला कंटेंट प्रबंधन प्रदान करता है: ### नया fill व्यवहार - **`fill: true`** - सभी लोकल्स के लिए भरे गए कंटेंट के साथ वर्तमान फ़ाइल को पुनः लिखता है - **`fill: "path/to/file"`** - निर्दिष्ट फ़ाइल को भरे बिना वर्तमान फ़ाइल को संशोधित किए बिना भरता है - **`fill: false`** - ऑटो-फिल को पूरी तरह से अक्षम करता है ### जटिल कंटेंट संरचनाओं के लिए उन्नत समर्थन fill कमांड अब जटिल कंटेंट घोषणा संरचनाओं का समर्थन करता है, जिसमें शामिल हैं: - **संयोजित ऑब्जेक्ट्स**: कंटेंट घोषणाएं जो अन्य ऑब्जेक्ट्स का संदर्भ देती हैं - **डिस्ट्रक्चर्ड कंटेंट**: कंटेंट जो डिस्ट्रक्चरिंग पैटर्न का उपयोग करता है - **नेस्टेड संदर्भ**: ऑब्जेक्ट्स जो जटिल पदानुक्रमों में एक-दूसरे को कॉल करते हैं - **डायनामिक कंटेंट संरचनाएं**: कंटेंट जिसमें सशर्त या गणना की गई विशेषताएं होती हैं ### लाभ - **स्पष्ट इरादा**: व्यवहार अब अधिक स्पष्ट है कि क्या संशोधित किया जाता है - **बेहतर पृथक्करण**: कंटेंट फ़ाइलों को भरे गए अनुवादों से अलग रखा जा सकता है - **सुधारित कार्यप्रवाह**: डेवलपर्स के पास यह नियंत्रित करने का अधिक विकल्प होता है कि अनुवाद कहाँ संग्रहीत किए जाते हैं - **जटिल संरचना समर्थन**: कई परस्पर जुड़े ऑब्जेक्ट्स के साथ परिष्कृत कंटेंट आर्किटेक्चर को संभालें ### उदाहरण उपयोग ```typescript // सभी लोकल्स के साथ वर्तमान फ़ाइल को पुनः लिखें const content = { key: "example", fill: true, // इस फ़ाइल को पुनः लिखता है content: { title: "Hello World", }, }; // वर्तमान फ़ाइल को संशोधित किए बिना अलग फ़ाइल भरें const content = { key: "example", fill: "./translations.json", // translations.json बनाता/अपडेट करता है content: { title: "Hello World", }, }; // ऑटो-फिल अक्षम करें const content = { key: "example", fill: false, // कोई ऑटो-फिल नहीं content: { title: "Hello World", }, }; // संयोजित ऑब्जेक्ट्स के साथ जटिल कंटेंट संरचना const sharedContent = { buttons: { save: "सहेजें", cancel: "रद्द करें", }, }; const content = { key: "complex-example", fill: true, content: { // अन्य ऑब्जेक्ट्स के संदर्भ sharedContent, // डीस्ट्रक्चर्ड कंटेंट ...sharedContent, // नेस्टेड संदर्भ sections: [ { ...sharedContent.buttons, header: "सेक्शन 1", }, ], }, }; ``` --- ## बेहतर स्थिरता और अनुवाद प्रबंधन v7 कई सुधार प्रस्तुत करता है जो कंटेंट अनुवाद को अधिक विश्वसनीय और कुशल बनाते हैं: ### पूर्ण कंटेंट घोषणा फ़ाइल अपडेट्स सिस्टम अब आंशिक अपडेट के बजाय `.content.{ts,js,cjs,mjs}` फ़ाइलों को अपडेट करता है, जिससे सुनिश्चित होता है कि: - **डेटा अखंडता**: पूरी फ़ाइल को पुनः लिखने से आंशिक अपडेट से बचा जाता है जो कंटेंट को भ्रष्ट कर सकते हैं - **संगति**: सभी लोकल्स को एक साथ अपडेट किया जाता है, जिससे सिंक्रनाइज़ेशन बना रहता है - **विश्वसनीयता**: अधूरी या त्रुटिपूर्ण कंटेंट फ़ाइलों के जोखिम को कम करता है ### बुद्धिमान पुनः प्रयास प्रबंधन नए पुनः प्रयास तंत्र गलत प्रारूपों में कंटेंट भेजने से रोकते हैं, और यदि एक अनुरोध विफल हो जाता है तो पूरे भरने की प्रक्रिया को टूटने से बचाते हैं। ### तेज़ प्रोसेसिंग के लिए समानांतरता अनुवाद संचालन अब कतार में चलते हैं ताकि उन्हें समानांतर में चलाया जा सके। इससे प्रक्रिया काफी तेज़ हो जाती है। ### बड़े फ़ाइलों के लिए स्मार्ट चंकिंग उन्नत चंकिंग रणनीतियाँ बड़ी कंटेंट फ़ाइलों को AI संदर्भ विंडो से अधिक हुए बिना संभालती हैं: ### उदाहरण कार्यप्रवाह ```typescript // बड़ी कंटेंट फ़ाइल स्वचालित रूप से चंक की जाती है const content = { key: "large-documentation", fill: true, content: { // AI प्रोसेसिंग के लिए बड़ी सामग्री को स्वचालित रूप से चंक किया गया introduction: "..." // 5000+ अक्षर sections: [ // कई बड़े सेक्शन ] } }; ``` सिस्टम स्वचालित रूप से: 1. सामग्री के आकार और संरचना का विश्लेषण करता है 2. सामग्री को उपयुक्त रूप से चंक करता है 3. चंक्स को समानांतर में प्रोसेस करता है 4. आवश्यक होने पर मान्यकरण करता है और पुनः प्रयास करता है 5. पूरी फ़ाइल को पुनर्निर्मित करता है --- ## v6 से माइग्रेशन नोट्स ### हटाई गई कॉन्फ़िगरेशन - **`middleware.cookieName`**: इसे `routing.storage` से बदला गया है - **`middleware.serverSetCookie`**: इसे `routing.storage` से बदला गया है - **`middleware.prefixDefault`**: इसे `routing.mode` से बदला गया है - **`middleware.noPrefix`**: इसे `routing.mode` से बदला गया है ### माइग्रेशन मैपिंग #### कॉन्फ़िगरेशन मैपिंग | v6 कॉन्फ़िगरेशन | v7 कॉन्फ़िगरेशन | | -------------------------- | ------------------------------------------------ | | `autoFill: xxx` | `fill: xxx` | | `prefixDefault: false` | `mode: 'prefix-no-default'` | | `prefixDefault: true` | `mode: 'prefix-all'` | | `noPrefix: true` | `mode: 'no-prefix'` | | `cookieName: 'my-locale'` | `storage: { type: 'cookie', name: 'my-locale' }` | | `serverSetCookie: 'never'` | `storage: false` या स्टोरेज एरे से कुकी हटाएं | #### उदाहरण माइग्रेशन **पहले (v6):** ```typescript export default { middleware: { headerName: "x-intlayer-locale", cookieName: "intlayer-locale", prefixDefault: false, basePath: "", serverSetCookie: "always", noPrefix: false, }, }; ``` **बाद में (v7):** ```typescript export default { routing: { mode: "prefix-no-default", storage: "localStorage", // या 'cookie' यदि आपको कुकी स्टोरेज की आवश्यकता है headerName: "x-intlayer-locale", basePath: "", }, }; ``` #### शब्दकोश सामग्री मैपिंग | v6 शब्दकोश सामग्री | v7 शब्दकोश सामग्री | | ------------------ | ------------------ | | `autoFill: xxx` | `fill: xxx` | #### उदाहरण माइग्रेशन **पहले (v6):** ```typescript const content = { key: "example", autoFill: true, // इस फ़ाइल को पुनः लिखता है content: { title: "हैलो वर्ल्ड", }, }; ``` **बाद में (v7):** ```typescript const content = { key: "example", fill: true, // इस फ़ाइल को पुनः लिखता है content: { title: "हैलो वर्ल्ड", }, }; ``` --- ## v5 से v6 तक माइग्रेशन नोट्स अधिक जानकारी के लिए [v5 से v6 तक माइग्रेशन नोट्स](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/releases/v6.md) देखें। --- ## उपयोगी लिंक - [कॉन्फ़िगरेशन संदर्भ](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/configuration.md) - [मिडलवेयर दस्तावेज़](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/packages/next-intlayer/index.md) - [टाइपस्क्रिप्ट प्रकार](https://github.com/aymericzip/intlayer/blob/main/packages/%40intlayer/types/src/index.ts) - [GDPR कुकी दिशानिर्देश](https://gdpr.eu/cookies/)