घरसैंडबॉक्सशोकेसएप्पडॉकब्लॉग
    • Englishअंग्रेज़ी
      EN
    • русскийरूसी
      RU
    • 日本語जापानी
      JA
    • françaisफ़्रेंच
      FR
    • 한국어कोरियाई
      KO
    • 中文चीनी
      ZH
    • españolस्पेनिश
      ES
    • Deutschजर्मन
      DE
    • العربيةअरबी
      AR
    • italianoइतालवी
      IT
    • British Englishब्रिटिश अंग्रेज़ी
      EN-GB
    • portuguêsपुर्तगाली
      PT
    • हिन्दीहिन्दी
      HI
    • Türkçeतुर्की
      TR
    • polskiपोलिश
      PL
    • Indonesiaइंडोनेशियाई
      ID
    • Tiếng Việtवियतनामी
      VI
    • українськаयूक्रेनियाई
      UK
    /
    फ्रेमवर्क द्वारा डॉक्स फ़िल्टर करें
    Alt+←
    Intlayer का क्यों लाभ
    शुरू करें
    अवधारणा
    • Intlayer कैसे काम करता है
    • कॉन्फ़िगरेशन
    • TestFillBuildWatchExtractLoginPushPullConfigurationListVersionEditorLiveDebugDoc ReviewDoc TranslateSDK
    • विज़ुअल एडिटर
    • CMS
    • CI/CD एकीकरण
    • अनुवादबहुवचनगणनाशर्तलिंगसम्मिलनफ़ाइलनेस्टिंगMarkdownHTMLफ़ंक्शन फेचिंग
    • प्रति लोकेल फ़ाइल
    • कंपाइलर
    • स्वतः भरण
    • परीक्षण
    • बंडल ऑप्टिमाइज़ेशन
    पर्यावरण
    • Next.js 14 और ऐप राउटर
      Next.js 15
      Next.js बिना लोकेल URL
      Next.js और पेज राउटर
      कंपाइलर
    • Tanstack Start Solid
    • Astro और React
      Astro और Svelte
      Astro और Vue
      Astro और Solid
      Astro और Preact
      Astro और Lit
      Astro और Vanilla JS
    • React Router v7
      React Router v7 (fs-routes)
      Compiler
    • Nuxt और Vue
    • Vite और Solid
    • SvelteKit
    • Vite और Preact
    • Vite और Vanilla JS
    • Vite और Lit
    • Angular 19 (Webpack)
      Analog
    • React CRA
    • React Native और Expo
    • Express.js
      NestJS
      Fastify
      Hono
      Adonis
    • Lynx और React
    Plugins
    • JSON
    • gettext (.po)
    VS Code एक्सटेंशन
    एजेंट
    • इंटलेयर MCP सर्वर
    • एजेंट कौशल
    रिलीज
    • v8
    • v7
    • v6
    बेंचमार्क
    • Next.js
    • TanStack
    • Vue
    • Solid
    • Svelte
    ब्लॉग
    प्रश्न करें
    1. Documentation
    2. बेंचमार्क
    3. Svelte
    Author: Aymeric PINEAU
    Creation:2026-04-20Last update:2026-05-18
    GitHub पर एप्लिकेशन टेम्पलेट देखें

    इस पृष्ठ के लिए एक एप्लिकेशन टेम्पलेट उपलब्ध है।

    इस दस्तावेज़ को अपने पसंदीदा AI एसिस्टेंट के साथ संदर्भित करें
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    अपने प्रश्न को पूछें और दस्तावेज़ का सारांश प्राप्त करें, इस पृष्ठ और आपके चुने हुए AI प्रदाता का उपयोग करके

    संस्करण इतिहास

    1. "GitHub स्टार तुलना जोड़ें"
      v8.9.818/5/2026
    2. "बेंचमार्क प्रारंभ"
      v8.7.126/1/2026

    इस पृष्ठ की सामग्री एक AI द्वारा अनुवादित की गई है।

    अंग्रेजी में मूल सामग्री के अंतिम संस्करण देखें
    इस दस्तावेज़ को संपादित करें

    अगर आपके पास इस दस्तावेज़ को सुधारने के लिए कोई विचार है, तो कृपया GitHub पर एक पुल अनुरोध सबमिट करके योगदान देने में संकोच न करें।

    दस्तावेज़ के लिए GitHub लिंक
    Copy

    दस्तावेज़ का Markdown को क्लिपबोर्ड पर कॉपी करें

    Svelte i18n पुस्तकालय - 2026 बेंचमार्क रिपोर्ट

    यह पृष्ठ Svelte पर i18n समाधानों के लिए एक बेंचमार्क रिपोर्ट है।

    विषय सूची

    इंटरैक्टिव बेंचमार्क

    परिणाम संदर्भ:

    intlayer.org
    पूर्ण बेंचमार्क डेटा देखें

    संपूर्ण बेंचमार्क रिपॉजिटरी यहाँ देखें।

    परिचय

    Svelte ऐप में अंतर्राष्ट्रीयकरण (Internationalisation) समाधान सबसे भारी निर्भरताओं में से हैं। मुख्य जोखिम अनावश्यक सामग्री भेजने का है: एक ही रूट के बंडल में अन्य पृष्ठों और अन्य लोकेल्स के अनुवाद शामिल करना।

    जैसे-जैसे आपका ऐप बढ़ता है, यह समस्या क्लाइंट को भेजे जाने वाले JavaScript को तेज़ी से बढ़ा सकती है और नेविगेशन को धीमा कर सकती है।

    व्यवहार में, कम से कम अनुकूलित कार्यान्वयन के लिए, एक अंतर्राष्ट्रीयकृत पृष्ठ बिना i18n वाले संस्करण की तुलना में कई गुना भारी हो सकता है।

    दूसरा प्रभाव डेवलपर अनुभव (DX) पर पड़ता है: आप सामग्री, प्रकार (types), नेमस्पेस संगठन, डायनेमिक लोडिंग और लोकेल बदलने पर प्रतिक्रियाशीलता को कैसे घोषित करते हैं।

    TL;DR

    • Intlayer: सबसे छोटे पदचिह्न (footprint) के साथ सबसे प्रदर्शन-कुशल विकल्प (v8.7.12)।
    • Paraglide: ट्री-शेकिंग (tree-shaking) के लिए मजबूत दावेदार लेकिन इसमें अधिक जटिल डेवलपर अनुभव और प्रतिक्रियाशीलता ओवरहेड है।
    • svelte-i18n: Svelte के लिए व्यापक और मानक, लेकिन बहुत बड़े बंडल वजन (~7x Intlayer) के साथ आता है।

    अपने ऐप का परीक्षण करें

    i18n लीकेज समस्याओं को तुरंत पहचानने के लिए, मैंने एक निःशुल्क स्कैनर सेट किया है जो यहाँ उपलब्ध है।

    intlayer.org

    समस्या

    बहुभाषी ऐप की लागत को सीमित करने के लिए दो लीवर आवश्यक हैं:

    • सामग्री को पृष्ठ / नेमस्पेस द्वारा विभाजित करें ताकि जरूरत न होने पर आप संपूर्ण शब्दकोश लोड न करें।
    • सही लोकेल को डायनेमिक रूप से लोड करें, केवल तभी जब आवश्यक हो।

    इन दृष्टिकोणों की तकनीकी सीमाओं को समझना:

    डायनेमिक लोडिंग

    डायनेमिक लोडिंग के बिना, अधिकांश समाधान पहले रेंडर से संदेशों को मेमोरी में रखते हैं, जो कई रूट्स और लोकेल्स वाले ऐप्स के लिए महत्वपूर्ण ओवरहेड जोड़ता है।

    डायनेमिक लोडिंग के साथ, आप एक समझौता स्वीकार करते हैं: कम प्रारंभिक JS, लेकिन भाषा स्विच करते समय कभी-कभी एक अतिरिक्त अनुरोध।

    सामग्री विभाजन (Splitting)

    t('a.b.c') के इर्द-गिर्द निर्मित सिंटैक्स बहुत सुविधाजनक हैं लेकिन अक्सर रनटाइम पर बड़ी JSON वस्तुओं को रखने के लिए प्रोत्साहित करते हैं। वह मॉडल ट्री-शेकिंग (tree-shaking) को कठिन बनाता है जब तक कि पुस्तकालय वास्तविक प्रति-पृष्ठ विभाजन रणनीति प्रदान नहीं करता।

    अनुसंधान पद्धति

    इस बेंचमार्क के लिए, हमने निम्नलिखित पुस्तकालयों की तुलना की:

    • Base App (कोई i18n पुस्तकालय नहीं)
    • svelte-intlayer (v8.7.12)
    • svelte-i18n (v4.0.1)
    • @inlang/paraglide-js (v2.17.0)

    फ्रेमवर्क Svelte है जिसमें 10 पृष्ठों और 10 भाषाओं का एक बहुभाषी ऐप है।

    हमने चार लोडिंग रणनीतियों की तुलना की:

    सभी तालिका सामग्री दिखाएं

    सभी डेटा सामग्री को स्पष्ट रूप से देखने के लिए तालिका को मोडल में खोलें

    रणनीति कोई नेमस्पेस नहीं (वैश्विक) नेमस्पेस के साथ (स्कोपयुक्त/scoped)
    स्टेटिक लोडिंग Static: स्टार्टअप पर मेमोरी में सब कुछ। Scoped static: नेमस्पेस द्वारा विभाजित; स्टार्टअप पर सब कुछ लोड।
    डायनेमिक लोडिंग Dynamic: लोकेल प्रति मांग पर लोडिंग। Scoped dynamic: नेमस्पेस और लोकेल प्रति सूक्ष्म लोडिंग।

    रणनीति सारांश

    • Static: सरल; प्रारंभिक लोड के बाद कोई नेटवर्क विलंबता नहीं। नकारात्मक पक्ष: बड़ा बंडल आकार।
    • Dynamic: प्रारंभिक वजन कम करता है (लेज़ी-लोडिंग)। आदर्श जब आपके पास कई लोकेल्स हों।
    • Scoped static: जटिल अतिरिक्त नेटवर्क अनुरोधों के बिना कोड को व्यवस्थित रखता है (तार्किक पृथक्करण)।
    • Scoped dynamic: कोड स्प्लिटिंग और प्रदर्शन के लिए सर्वोत्तम दृष्टिकोण। केवल वर्तमान दृश्य और सक्रिय लोकेल के लिए आवश्यक सामग्री लोड करके मेमोरी को कम करता है।

    GitHub सितारे

    GitHub सितारे किसी प्रोजेक्ट की लोकप्रियता, सामुदायिक विश्वास और दीर्घकालिक प्रासंगिकता का एक मजबूत संकेतक हैं। हालांकि यह तकनीकी गुणवत्ता का प्रत्यक्ष माप नहीं है, वे दर्शाते हैं कि कितने डेवलपर्स प्रोजेक्ट को उपयोगी पाते हैं, इसकी प्रगति का पालन करते हैं, और इसे अपनाने की संभावना रखते हैं। किसी प्रोजेक्ट के मूल्य का अनुमान लगाने के लिए, सितारे विकल्पों के बीच कर्षण की तुलना करने में मदद करते हैं और पारिस्थितिकी तंत्र के विकास में अंतर्दृष्टि प्रदान करते हैं।

    Star History Chart

    विवरण में परिणाम

    1 - बचने के लिए समाधान

    Svelte पारिस्थितिकी तंत्र में बचने के लिए कोई स्पष्ट समाधान नहीं है।

    2 - स्वीकार्य समाधान

    (Paraglide) (@inlang/[email protected]):

    Paraglide एक अभिनव, सुविचारित दृष्टिकोण प्रदान करता है। Vite + Svelte ऐप के संदर्भ में, उनकी कंपनी द्वारा विज्ञापित ट्री-शेकिंग अपेक्षा के अनुरूप काम करती है, जो बहुत अच्छी बात है। लेकिन React + TanStack Start के मामले में, ट्री-शेकिंग ने अपेक्षा के अनुरूप काम नहीं किया, Next.js के लिए भी यही स्थिति रही। उस ने कहा, Svelte और TanStack Start प्रोजेक्ट में Paraglide के उपयोग की दोबारा जांच करना सार्थक होगा। वर्कफ़्लो और DX भी अन्य विकल्पों की तुलना में अधिक जटिल हैं। व्यक्तिगत रूप से मैं हर पुश से पहले JS फ़ाइलों को पुनर्जीवित करने का प्रशंसक नहीं हूं, जो PR के माध्यम से निरंतर मर्ज संघर्ष जोखिम पैदा करता है। यह टूल Next.js की तुलना में Vite पर अधिक केंद्रित लगता है। अंत में, अन्य समाधानों की तुलना में, Paraglide सामग्री रेंडर करने के लिए वर्तमान लोकेल को पुनः प्राप्त करने के लिए स्टोर (उदा. Svelte store) का उपयोग नहीं करता है। पार्स किए गए प्रत्येक नोड के लिए, यह localStorage / cookie आदि से लोकेल का अनुरोध करेगा। यह अनावश्यक तर्क के निष्पादन की ओर ले जाता है जो घटक प्रतिक्रियाशीलता को प्रभावित करता है।

    Paraglide पर ध्यान दें: समाधान आयात के लिए आपके कोडबेस में कोड इंजेक्ट करता है; परिणामस्वरूप, बेंचमार्क रिपोर्ट में 'lib size' मीट्रिक लगभग 0 है। कोड जेनरेशन एक अच्छी बात है, क्योंकि उपयोग किए गए फ़ंक्शन में केवल आवश्यक तर्क शामिल होंगे (हर जगह प्रीफ़िक्स बनाम कोई प्रीफ़िक्स नहीं, कुकी बनाम स्टोरेज आदि)। तुलनात्मक रूप से, Intlayer तर्क के आधार पर सामग्री को ट्री-शेक करने के लिए बंडलर को मजबूर करने के लिए बिल्ड में पर्यावरण चर इंजेक्शन के माध्यम से यह फ़िल्टरिंग करता है। इसके कारण, paraglide और intlayer i18next या next-intl की तुलना में 6 से 10 गुना हल्के समाधान साबित होते हैं।

    (svelte-i18n) ([email protected]):

    यह समाधान Svelte प्रोजेक्ट में सभी i18n आवश्यकताओं को पूरा करता है। लेकिन जैसा कि i18next या अन्य प्रमुख i18n समाधानों के मामले में होता है, यह थोड़ा भारी है (~15.9kb, जो svelte-intlayer से लगभग 7 गुना है)।

    3 - सिफारिशें

    (Intlayer) ([email protected]):

    मैं निष्पक्षता के लिए व्यक्तिगत रूप से svelte-intlayer का न्याय नहीं करूँगा, क्योंकि यह मेरा अपना समाधान है।

    व्यक्तिगत नोट

    यह नोट व्यक्तिगत है और बेंचमार्क परिणामों को प्रभावित नहीं करता है। फिर भी, i18n दुनिया में आप अक्सर अनुवादित सामग्री के लिए const t = useTranslation('xx') + <>{t('xx.xx')}</> जैसे पैटर्न के आसपास आम सहमति देखते हैं।

    Svelte ऐप्स में, एक फ़ंक्शन को Slot के रूप में इंजेक्ट करना, मेरी नज़र में, एक एंटी-पैटर्न है। यह परिहार्य जटिलता और JavaScript निष्पादन ओवरहेड भी जोड़ता है (भले ही यह मुश्किल से ध्यान देने योग्य हो)।

    Solid
    Alt+→

    इस पृष्ठ में

      चर्चाएं गुमनाम हैं और सामान्य मुद्दों को संबोधित करने के लिए नियमित रूप से समीक्षा की जाती हैं। फीचर आइडिया, डॉक्यूमेंटेशन पर फीडबैक, या Intlayer से संबंधित कुछ भी साझा करने में संकोच न करें, हम इस इनपुट का उपयोग अपने रोडमैप को आकार देने और उत्पाद को बेहतर बनाने के लिए करते हैं।

      डायनामिक JSON लोडिंग

      रनटाइम पर आलस्य से अनुवाद लोड करता है

      स्कोप्ड JSON (नेमस्पेसिंग)

      प्रति-पृष्ठ अनुवाद नेमस्पेस

      I18n प्रदर्शन बेंचमार्क

      कोई डेटा उपलब्ध नहीं

      यह मीट्रिक क्या है?

      अंतर्राष्ट्रीयकरण लाइब्रेरी बंडल का कुल gzip-संपीड़ित आकार। इसमें केवल ट्री-शेकिंग और मिनिफिकेशन के बाद प्रदाता और सामग्री पुनर्प्राप्ति तर्क शामिल हैं।

      यह महत्वपूर्ण क्यों है?

      एक छोटा लाइब्रेरी आकार प्रारंभिक जावास्क्रिप्ट पेलोड को कम करता है, जिससे क्लाइंट पर तेज़ डाउनलोड और निष्पादन समय होता है।

      देखने का तरीका