अपने प्रश्न को पूछें और दस्तावेज़ का सारांश प्राप्त करें, इस पृष्ठ और आपके चुने हुए AI प्रदाता का उपयोग करके
संस्करण इतिहास
- "प्रारंभिक संस्करण"v9.5.1026/9/2026
इस पृष्ठ की सामग्री एक AI द्वारा अनुवादित की गई है।
अंग्रेजी में मूल सामग्री के अंतिम संस्करण देखेंअगर आपके पास इस दस्तावेज़ को सुधारने के लिए कोई विचार है, तो कृपया GitHub पर एक पुल अनुरोध सबमिट करके योगदान देने में संकोच न करें।
दस्तावेज़ के लिए GitHub लिंकदस्तावेज़ का Markdown को क्लिपबोर्ड पर कॉपी करें
2026 में Lingui का उपयोग करके अपने TanStack Start एप्लिकेशन का अंतर्राष्ट्रीयकरण कैसे करें
विषय सूची
Lingui क्या है?
Lingui एक i18n लाइब्रेरी है जो macros और message extraction के इर्द-गिर्द बनाई गई है। आप स्रोत टेक्स्ट को सीधे अपने कंपोनेंट्स में लिखते हैं ( t`Hello` , <Trans>Hello</Trans>), lingui extract प्रत्येक संदेश को कैटलॉग (डिफ़ॉल्ट रूप से PO फ़ाइलें) में एकत्र करता है, अनुवादक उन्हें भरते हैं, और Vite प्लगइन उन्हें कॉम्पैक्ट जावास्क्रिप्ट में संकलित (compile) करता है। संदेश ICU MessageFormat का उपयोग करते हैं, इसलिए plurals और selects समर्थित हैं।
TanStack Start में कोई अंतर्निहित i18n लेयर नहीं आती है, इसलिए यह गाइड शुरू से Lingui को इसमें एकीकृत करती है:
- Babel द्वारा संकलित Macros
@rolldown/plugin-babelके माध्यम से (@vitejs/plugin-reactv6 और Vite 8 के साथ आवश्यक)। - Locale routing एक वैकल्पिक
{-$locale}सेगमेंट के साथ (/about,/fr/about)। - प्रति लोकेल एक कैटलॉग, मांग पर लोड किया गया (on demand), और प्रति रेंडर एक
I18nइंस्टेंस ताकि समवर्ती (concurrent) SSR अनुरोध कभी भी लोकेल साझा न करें। - संपूर्ण बहुभाषी SEO: अनुवादित
<title>और विवरण, कैनोनिकल URL,x-defaultके साथhreflang, Open Graph लोकेल्स, JSON-LD, साइटमैप,robots.txt, प्री-रेंडरिंग और स्थानीयकृत 404 पेज।
क्या आप किसी अन्य स्टैक की तलाश में हैं?
क्या आप Next.js का उपयोग कर रहे हैं?
देखें। पुस्तकालयों की तुलना कर रहे हैं?
ये लाइब्रेरी कहाँ से आईं, यह समझने के लिए JavaScript i18n का इतिहास पढ़ें।
TanStack Start पर Lingui के बारे में बेंचमार्क क्या कहता है
i18n बेंचमार्क हर प्रमुख लाइब्रेरी के साथ समान 10-पेज, 10-लोकेल TanStack Start ऐप चलाता है और मापता है कि ब्राउज़र वास्तव में क्या डाउनलोड करता है।
मीट्रिक
डायनामिक JSON लोडिंग
रनटाइम पर आलस्य से अनुवाद लोड करता है
स्कोप्ड JSON (नेमस्पेसिंग)
प्रति-पृष्ठ अनुवाद नेमस्पेस
यह मीट्रिक क्या है?
अंतर्राष्ट्रीयकरण लाइब्रेरी बंडल का कुल gzip-संपीड़ित आकार। इसमें केवल ट्री-शेकिंग और मिनिफिकेशन के बाद प्रदाता और सामग्री पुनर्प्राप्ति तर्क शामिल हैं।
यह महत्वपूर्ण क्यों है?
एक छोटा लाइब्रेरी आकार प्रारंभिक जावास्क्रिप्ट पेलोड को कम करता है, जिससे क्लाइंट पर तेज़ डाउनलोड और निष्पादन समय होता है।
देखने का तरीका
@lingui/core@6.6.0 के लिए मुख्य आंकड़े, 2026-09-26 को मापे गए (gzip):
सभी डेटा सामग्री को स्पष्ट रूप से देखने के लिए तालिका को मोडल में खोलें
| सेटअप | लाइब्रेरी का आकार | प्रति पेज JS | अन्य लोकेल लीक | अन्य पेज लीक |
|---|---|---|---|---|
| कोई i18n नहीं (बेस ऐप) | - | 111.0 KB | 0% | 0% |
| Lingui (इस गाइड का सेटअप) | 56.7 KB | 115.2 KB | 9.3% | 0% |
@intlayer/lingui (संगतता) | 9.8 KB | 136.7 KB | 9.9% | 0% |
react-intlayer (मूल Intlayer) | 4.5 KB | 126.8 KB | 0% | 0% |
मुख्य निष्कर्ष:
- प्रति लोकेल केवल एक कैटलॉग मांग पर लोड करें। यह पेजों को बेस ऐप आकार के करीब रखता है।
- रनटाइम भारी रहता है (~57 KB gzip)।
@intlayer/linguiसंगतता एडेप्टर (चरण 16) आपके मैक्रोज़ को बनाए रखता है और इसे घटाकर ~10 KB कर देता है।
पूरा डेटा देखें: TanStack Start बेंचमार्क रिपोर्ट, और बेंचमार्क रिपॉजिटरी।
TanStack Start पर फीचर तुलना
TanStack Start पर आमतौर पर उपयोग की जाने वाली अन्य पुस्तकालयों के साथ Lingui की तुलना:
सभी डेटा सामग्री को स्पष्ट रूप से देखने के लिए तालिका को मोडल में खोलें
| फीचर | react-intlayer (Intlayer) | use-intl | Paraglide JS | Lingui |
|---|---|---|---|---|
| कंपोनेंट्स के पास अनुवाद | ✅ सह-स्थित (Co-located) | ❌ केंद्रीकृत JSON | ❌ प्रति लोकेल एक JSON फ़ाइल | ⚠️ कंपोनेंट्स में स्रोत टेक्स्ट |
| TypeScript एकीकरण | ✅ स्वतः जनरेट किए गए प्रकार | ✅ AppConfig के माध्यम से | ✅ टाइप किए गए संदेश फ़ंक्शन | ⚠️ केवल Macros |
| लापता अनुवाद का पता लगाना | ✅ टाइप त्रुटियां और बिल्ड चेतावनियां | ⚠️ रनटाइम फ़ॉलबैक | ⚠️ बेस लोकेल पर फ़ॉलबैक करता है | ⚠️ स्रोत टेक्स्ट पर फ़ॉलबैक करता है |
| रिच कंटेंट (JSX, Markdown) | ✅ प्रत्यक्ष समर्थन | ⚠️ t.rich के माध्यम से टैग | ⚠️ स्ट्रिंग्स | ✅ <Trans> के अंदर JSX |
| स्थानीयकृत रूटिंग | ✅ अंतर्निहित | ❌ मैन्युअल {-$locale} | ✅ urlPatterns + राउटर रीराइट | ❌ मैन्युअल {-$locale} |
| रीलोड किए बिना लोकेल स्विच | ✅ हाँ | ✅ हाँ | ❌ पूरा पेज रीलोड | ✅ हाँ |
| बहुवचन (Pluralization) | ✅ गणना आधारित | ✅ ICU | ✅ वेरिएंट्स | ✅ ICU |
| ICU MessageFormat | ✅ format: "icu" के माध्यम से | ✅ नेटिव | ⚠️ inlang प्लगइन के माध्यम से | ✅ नेटिव |
| कंटेंट प्रारूप | ✅ .ts, .json, .md, .yaml... | ⚠️ .json | ⚠️ inlang JSON | ✅ PO, JSON, CSV |
| AI अनुवाद | ✅ आपका अपना प्रदाता और कुंजी | ❌ नहीं | ❌ नहीं | ❌ नहीं |
| विजुअल एडिटर / CMS | ✅ स्थानीय एडिटर + वैकल्पिक CMS | ❌ बाहरी प्लेटफॉर्म | ⚠️ inlang इकोसिस्टम ऐप्स | ❌ बाहरी प्लेटफॉर्म |
| SEO सहायक (hreflang, sitemap) | ✅ अंतर्निहित | ❌ मैन्युअल | ⚠️ स्थानीयकृत URLs, बाकी मैन्युअल | ❌ मैन्युअल |
| रनटाइम आकार (gzip, benchmark) | 4.5 KB | 75.9 KB | 1.8 KB | 56.7 KB |
| लीक, सर्वश्रेष्ठ सेटअप (लोकेल / पेज) | 0% / 0% | 0% / 0% | 49.7% / 0% | 8.6% / 0% |
| CI में लापता अनुवाद | ✅ npx intlayer test | ⚠️ अंतर्निहित नहीं | ⚠️ अंतर्निहित नहीं | ✅ lingui compile --strict |
रनटाइम आकार और लीक के आंकड़े TanStack Start बेंचमार्क से लिए गए हैं। लीक प्रत्येक लाइब्रेरी के सर्वोत्तम सेटअप पर मापा जाता है।
अन्य TanStack Start गाइड:
अभ्यास जिनका आपको पालन करना चाहिए
<html>परlangऔरdirसेट करें रूट लोकेल से, ताकि वे सर्वर HTML में सही हों।- प्रत्येक लोकेल के लिए एक URL रखें प्रीफ़िक्स के साथ, ताकि प्रत्येक भाषा संस्करण अनुक्रमित (indexable) हो सके।
- प्रति लोकेल एक
I18nइंस्टेंस बनाएं, SSR के दौरान कभी भी वैश्विक इंस्टेंस को म्यूटेट न करें: दो समवर्ती अनुरोध एक-दूसरे के लोकेल को ओवरराइट कर देंगे। - केवल सक्रिय कैटलॉग लोड करें, क्लाइंट कोड में उन सभी को कभी इम्पोर्ट न करें।
- एक मैक्रो शैली चुनें (कंपोनेंट्स में
useLingui+t, लेज़ी डिस्क्रिप्टर के लिएmsg) और उसी पर टिके रहें।t,i18n._,i18n.tऔर<Trans>को मिलाने से कोड को इंसानों और AI सहायकों के लिए पढ़ना कठिन हो जाता है। - CI में
lingui extractचलाएं ताकि कोई नया संदेश कभी भी बिना अनुवाद के न जाए। - अपने मेटाडेटा का अनुवाद करें, और प्रत्येक पेज पर
canonical,hreflangऔरx-defaultघोषित करें। - एक बहुभाषी साइटमैप और robots.txt बनाएं, और प्रत्येक लोकेल को प्री-रेंडर करें।
लोकेल स्विचर के लिए वास्तविक लिंक का उपयोग करें, ताकि क्रॉलर्स हर भाषा की खोज कर सकें।
- अंतर्राष्ट्रीयकरण और SEO
- hreflang गाइड
TanStack Start एप्लिकेशन में Lingui सेट अप करने के लिए चरण-दर-चरण गाइड
यहाँ वह प्रोजेक्ट संरचना है जिसे हम बनाएंगे:
कोड को क्लिपबोर्ड पर कॉपी करें
निर्भरताएँ स्थापित करें
bashकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
- @lingui/core / @lingui/react: रनटाइम,
I18nProviderऔर मैक्रोज़ (@lingui/core/macro,@lingui/react/macro)। - @lingui/cli: कैटलॉग में संदेशों को एकत्र करने के लिए
lingui extract। - @lingui/vite-plugin: इम्पोर्ट पर
.poकैटलॉग को कंपाइल करता है, इसलिएlingui compileकी आवश्यकता नहीं होती है। - @lingui/babel-plugin-lingui-macro + @rolldown/plugin-babel: बिल्ड समय पर मैक्रोज़ को ट्रांसफ़ॉर्म करते हैं।
- @lingui/core / @lingui/react: रनटाइम,
अपने लोकेल कॉन्फ़िगरेशन को केंद्रीकृत करें
डिफ़ॉल्ट लोकेल बिना प्रीफ़िक्स के रहता है (
/about), अन्य लोकेल्स प्रीफ़िक्स किए जाते हैं (/fr/about)।src/i18n/config.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
Lingui कॉन्फ़िगर करें
Lingui कॉन्फ़िग उसी लोकेल सूची का पुन: उपयोग करता है, इसलिए कैटलॉग, राउटर और साइटमैप कभी भी असहमत नहीं होते हैं।
lingui.config.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
निष्कर्षण (extraction) स्क्रिप्ट जोड़ें:
package.jsonकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
i18n:checkCI में विफल हो जाता है जब किसी कंपोनेंट में ऐसा संदेश होता है जिसे निकाला और कमिट नहीं किया गया था।Vite कॉन्फ़िगर करें
@vitejs/plugin-reactv6 के साथ, Babel अब अंतर्निहित नहीं है।@rolldown/plugin-babelLingui मैक्रो प्लगइन चलाता है, औरlinguiTransformerBabelPresetकेवल उन फ़ाइलों को प्रोसेस करता है जो मैक्रो इम्पोर्ट करती हैं, जो बिल्ड को तेज़ रखता है।vite.config.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
प्रति लोकेल कैटलॉग लोड करें
import()में टेम्पलेट लिटरल Vite को प्रति कैटलॉग एक हिस्सा (chunk) उत्सर्जित करने की अनुमति देता है, और Lingui प्लगइन.poफ़ाइल को इसमें संकलित करता है। एक फ्रेंच विज़िटर केवल फ्रेंच कैटलॉग डाउनलोड करता है।संकलित संदेश सामान्य डेटा होते हैं, इसलिए उन्हें रूट लोडर द्वारा लौटाया जा सकता है, HTML में क्रमबद्ध (serialized) किया जा सकता है, और हाइड्रेशन पर पुन: उपयोग किया जा सकता है।
src/i18n/lingui.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
TypeScript के लिए
.poआयात को स्वीकार करने के लिए, मॉड्यूल को एक बार घोषित करें:src/i18n/po.d.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
रूट दस्तावेज़ बनाएं
रूट रूट सर्वर-रेंडर किए गए
<html>परlangऔरdirसेट करने के लिए वैकल्पिक लोकेल पैरम को पढ़ता है।src/routes/__root.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
लोकेल लेआउट रूट बनाएं
{-$locale}फ़ोल्डर एक वैकल्पिक पाथ सेगमेंट बनाता है:/aboutऔर/fr/aboutदोनों/{-$locale}/aboutसे मेल खाते हैं। लेआउट अज्ञात प्रीफ़िक्स को अस्वीकार करता है, वर्तमान लोकेल के कैटलॉग को लोड करता है, और एक समर्पितI18nइंस्टेंस प्रदान करता है।src/routes/{-$locale}/route.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
अपने पेजों में अनुवादों का उपयोग करें
कंपोनेंट में स्रोत टेक्स्ट लिखें। मैक्रोज़ इसे बिल्ड समय पर मैसेज आईडी में बदल देते हैं, और
lingui extractइसे एकत्र करता है।- JSX सामग्री के लिए
<Trans>, नेस्टेड तत्वों सहित; - स्ट्रिंग्स (विशेषताओं, प्रॉप्स) के लिए
useLingui().t; - ICU बहुवचनों के लिए
<Plural>।
src/routes/{-$locale}/about.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
किसी कैटलॉग का डायनेमिक
import()मॉड्यूल सिस्टम द्वारा कैश किया जाता है, इसलिए कई लोडरों मेंloadI18nको कॉल करने से कैटलॉग दो बार डाउनलोड नहीं होता है।- JSX सामग्री के लिए
अपने संदेश निकालें और अनुवाद करें
निष्कर्षण (extraction) चलाएं। Lingui प्रत्येक संदेश को प्रत्येक लोकेल कैटलॉग में लिखता है:
bashकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
फिर प्रत्येक प्रविष्टि के
msgstrका अनुवाद करें:src/locales/fr/messages.poकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
src/locales/es/messages.poकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
डिफ़ॉल्ट रूप से, संदेश आईडी स्रोत टेक्स्ट के हैश होते हैं: अंग्रेजी टेक्स्ट बदलने से एक नया संदेश बनता है। उन टेक्स्ट के लिए स्पष्ट आईडी (
<Trans id="about.title">About us</Trans>) का उपयोग करें जो अक्सर बदलते हैं।एक स्थानीयकृत लिंक घटक बनाएं
वैकल्पिकप्रत्येक रूट
{-$locale}के अंतर्गत रहता है, इसलिए लिंक में वर्तमान लोकेल पैरामीटर होना चाहिए।src/components/LocalizedLink.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
अपनी सामग्री की भाषा बदलें
वैकल्पिकस्विचर को लिंक के रूप में रेंडर करें, ताकि क्रॉलर्स को हर भाषा का संस्करण मिल सके।
to="."वर्तमान पेज को बनाए रखता है और लोकेल पैरामीटर को बदलता है। लोकेल लेआउट का लोडर फिर नया कैटलॉग प्राप्त करता है।src/components/LocaleSwitcher.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
अपने मेटाडेटा का अंतर्राष्ट्रीयकरण करें
वैकल्पिकप्रत्येक भाषा संस्करण अपने दम पर रैंक कर सकता है, बशर्ते प्रत्येक पेज एक अनुवादित
<title>और विवरण, एक स्व-संदर्भित कैनोनिकल, प्रति लोकेल एकhreflangप्लसx-default, Open Graph लोकेल्स औरinLanguageके साथ JSON-LD प्रदर्शित करे। मेटाडेटा का अनुवाद लोडर में किया जाता है (चरण 8), और यह हेल्पर बाकी का निर्माण करता है:src/i18n/seo.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
अपने साइटमैप और robots.txt का अंतर्राष्ट्रीयकरण करें
वैकल्पिकसाइटमैप प्रत्येक लोकेल के प्रत्येक URL को सूचीबद्ध करता है, प्रत्येक प्रविष्टि
xhtml:linkके साथ अपने सभी विकल्पों को घोषित करती है।robots.txtहर भाषा में निजी मार्गों को रोकता है और साइटमैप की ओर इंगित करता है। यदि स्टार्टर ने एक बनाया है तोpublic/robots.txtको हटा दें।src/routes/sitemap[.]xml.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
src/routes/robots[.]txt.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
प्रत्येक लोकेल को प्री-रेंडर करें
वैकल्पिकप्रत्येक स्थानीयकृत पथ को सूचीबद्ध करें ताकि TanStack Start बिल्ड समय पर सभी भाषा संस्करणों को प्री-रेंडर कर सके:
vite.config.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
पहली बार आने वाले आगंतुकों को पुनर्निर्देशित करें और 404 पेजों को संभालें
वैकल्पिकएक अनुरोध मिडलवेयर
/पर आने वाले आगंतुक को उनकी पसंदीदा भाषा में भेजता है (पहले कुकी, फिरAccept-Language)। डीप लिंक कभी भी पुनर्निर्देशित नहीं होते हैं, इसलिए क्रॉलर्स और साझा किए गए URL हमेशा वह पेज प्राप्त करते हैं जिसके लिए उन्होंने अनुरोध किया था।src/i18n/negotiateLocale.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
src/start.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
404 पेजों के लिए, एक कैच-ऑल रूट लेआउट के स्थानीयकृत
notFoundComponentको रेंडर करता है। इसेnoindexके रूप में चिह्नित करें: React 19<meta>को<head>में होस्ट करता है।src/components/NotFound.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
src/routes/{-$locale}/$.tsxकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
अपने मैक्रोज़ रखें, Intlayer के साथ रनटाइम कम करें
वैकल्पिक@intlayer/linguiसंगतता एडेप्टर आपके स्रोत को अछूता रखता है: मैक्रोज़ पहले की तरह बिल्कुल संकलित होते हैं, और परिणामीi18n._(),useLingui()और<Trans>कॉल संकलित Intlayer शब्दकोशों द्वारा परोसे जाते हैं। बेंचमार्क में, रनटाइम ~56.7 KB से घटकर ~9.8 KB gzip हो जाता है।bashकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
मैक्रो ट्रांसफ़ॉर्म के बाद प्लगइन जोड़ें, ताकि यह
@lingui/coreऔर@lingui/reactको एडेप्टर पर उपनाम (alias) दे सके:vite.config.tsकोड कॉपी करेंकोड को क्लिपबोर्ड पर कॉपी करें
कैटलॉग को sync JSON प्लगइन (JSON कैटलॉग) या sync PO प्लगइन (PO कैटलॉग) के साथ सिंक्रनाइज़ किया जाता है। पूरा सेटअप Lingui संगतता गाइड में देखें, और Lingui बनाम @intlayer/lingui में आमने-सामने तुलना देखें।
Intlayer का उपयोग करके अपने अनुवादों को स्वचालित करें
वैकल्पिकLingui संदेश निकालता है, लेकिन दर्जनों कैटलॉग को हाथ से भरने में सबसे अधिक समय जाता है। Intlayer मुफ़्त और ओपन सोर्स है, और इसके टूल्स Lingui के साथ काम करते हैं:
- AI से अनुवाद करें अपनी स्वयं की API कुंजी और प्रदाता का उपयोग करके। auto fill और CLI देखें।
- अपनी PO फ़ाइलें बनाए रखें सत्य के स्रोत के रूप में sync PO प्लगइन के साथ।
- लापता अनुवादों का परीक्षण करें CI में। अपने अनुवादों का परीक्षण करना देखें।
- अपनी परिनियोजित (deployed) साइट का ऑडिट करें लापता
hreflang, गलत कैनोनिकल और लोकेल लीक के लिए scan कमांड के साथ।
अक्सर पूछे जाने वाले प्रश्न
हाँ। Lingui का कोई समर्पित TanStack Start एकीकरण नहीं है, लेकिन इसका Vite प्लगइन और Babel मैक्रो प्लगइन ज्यों के त्यों काम करते हैं। सही करने के लिए दो बिंदु हैं @rolldown/plugin-babel के माध्यम से मैक्रोज़ चलाना (Vite 8 और @vitejs/plugin-react v6 में अब Babel शामिल नहीं है), और SSR के दौरान वैश्विक इंस्टेंस को सक्रिय करने के बजाय प्रति लोकेल एक I18n इंस्टेंस बनाना।
सर्वर पर, एक प्रक्रिया एक ही समय में कई अनुरोधों को रेंडर करती है। एक साझा ऑब्जेक्ट पर i18n.activate("fr") को कॉल करने से समानांतर में अंग्रेजी में रेंडर होने वाले अनुरोध की भाषा बदल जाएगी। setupI18n प्रति लोकेल एक अलग इंस्टेंस बनाता है, जो सुरक्षित है।
नहीं। @lingui/vite-plugin आयात किए जाने पर .po कैटलॉग को संकलित करता है। आप केवल नए संदेश एकत्र करने के लिए lingui extract चलाते हैं।
उन्हें msg मैक्रो के साथ घोषित करें, और रूट लोडर में i18n._(msg`...`) के साथ उनका अनुवाद करें। लोडर सादे स्ट्रिंग्स लौटाता है, इसलिए head() सिंक्रोनस रहता है और मान हाइड्रेशन के लिए क्रमबद्ध होते हैं। चरण 8 और चरण 12 पूरा सेटअप दिखाते हैं।
बेंचमार्क रनटाइम के लिए ~56.7 KB gzip मापता है। मांग पर लोड किए गए प्रति लोकेल एक कैटलॉग के साथ, पेजों का वजन बिना i18n के 111 KB के मुकाबले ~115 KB होता है। हर कैटलॉग को स्थिर रूप से आयात करने से यह बढ़कर ~152 KB हो जाता है।
हाँ। @intlayer/lingui एडेप्टर मैक्रोज़ को रखता है और रनटाइम को स्वैप करता है। फिर आप कंपोनेंट्स को एक-एक करके useIntlayer में स्थानांतरित कर सकते हैं। संगतता एडेप्टर देखें।
टिप्पणियाँ
अभी तक कोई टिप्पणी नहीं। अपने विचार साझा करने वाले पहले व्यक्ति बनें।
