अंतर्राष्ट्रीयकरण (i18n)
Starlight बहुभाषी साइटों के लिए अंतर्निहित समर्थन प्रदान करता है, जिसमें रूटिंग, फ़ॉलबैक कंटेंट और पूर्ण दाएं से बाएं (RTL) भाषा समर्थन शामिल है।
i18n कॉन्फ़िगर करें
-
Starlight एकीकरण में
locales
औरdefaultLocale
पास करके Starlight को उन भाषाओं के बारे में बताएं जिनका आप समर्थन करते हैं:आपके
defaultLocale
का उपयोग फ़ॉलबैक कंटेंट और UI लेबल के लिए किया जाएगा, इसलिए वह भाषा चुनें जिसमें आप कंटेंट लिखने की सबसे अधिक संभावना रखते हैं, या जिसके लिए आपके पास पहले से ही कंटेंट है। -
src/content/docs/
में प्रत्येक भाषा के लिए एक निर्देशिका बनाएं। उदाहरण के लिए, ऊपर दिखाए गए कॉन्फ़िगरेशन के लिए, निम्नलिखित फ़ोल्डर बनाएं:Directorysrc/
Directorycontent/
Directorydocs/
Directoryar/
- …
Directoryen/
- …
Directoryzh-cn/
- …
-
अब आप अपनी भाषा निर्देशिकाओं में कंटेंट फ़ाइलें जोड़ सकते हैं। सभी भाषाओं में पेजों को संबद्ध करने के लिए एक ही फ़ाइल नाम का उपयोग करें और फ़ॉलबैक कंटेंट अनुवाद सूचनाएं और बहुत कुछ सहित Starlight के i18n सुविधाओं के पूर्ण सेट का लाभ उठाएं।
उदाहरण के लिए, अरबी और अंग्रेजी के मुखपेज को दर्शाने के लिए क्रमशः
ar/index.md
औरen/index.md
बनाएं।
अधिक उन्नत i18n परिदृश्यों के लिए, Starlight Astro के i18n
कॉन्फ़िगरेशन विकल्प का उपयोग करके अंतर्राष्ट्रीयकरण को कॉन्फ़िगर करने का भी समर्थन करता है।
root locale का उपयोग करें
आप किसी भाषा को उसके पथ में बिना किसी i18n उपसर्ग के प्रस्तुत करने के लिए “root” locale का उपयोग कर सकते हैं। उदाहरण के लिए, यदि अंग्रेजी आपका मूल स्थान है, तो एक अंग्रेजी पेज पथ /en/about
के बजाय /about
जैसा दिखेगा।
root locale सेट करने के लिए, अपने locales
कॉन्फ़िगरेशन में root
कुंजी का उपयोग करें। यदि root locale आपकी कंटेंट के लिए डिफ़ॉल्ट locale भी है, तो defaultLocale
को हटा दें या इसे “root” पर सेट करें।
root
locale का उपयोग करते समय, उस भाषा के पेजों को समर्पित भाषा फ़ोल्डर के बजाय src/content/docs/
में रखें। उदाहरण के लिए, उपरोक्त कॉन्फ़िगरेशन का उपयोग करते समय अंग्रेजी और चीनी के लिए होम पेज फ़ाइलें यहां दी गई हैं:
Directorysrc/
Directorycontent/
Directorydocs/
- index.md
Directoryzh-cn/
- index.md
एकभाषी साइटें
डिफ़ॉल्ट रूप से, Starlight एक एकभाषी (अंग्रेजी) साइट है। किसी अन्य भाषा में एकल भाषा साइट बनाने के लिए, इसे अपने locales
कॉन्फ़िगरेशन में root
के रूप में सेट करें:
यह आपको भाषा पिकर जैसी बहु-भाषा साइटों के लिए अन्य अंतर्राष्ट्रीयकरण सुविधाओं को सक्षम किए बिना Starlight की डिफ़ॉल्ट भाषा को ओवरराइड करने की अनुमति देता है।
फ़ॉलबैक कंटेंट
Starlight आपसे अपेक्षा करता है कि आप अपनी सभी भाषाओं में समान पेज बनाएं। उदाहरण के लिए, यदि आपके पास en/about.md
फ़ाइल है, तो आपके द्वारा समर्थित प्रत्येक अन्य भाषा के लिए about.md
बनाएं। यह Starlight को उन पेजों के लिए स्वचालित फ़ॉलबैक कंटेंट प्रदान करने की अनुमति देता है जिनका अभी तक अनुवाद नहीं किया गया है।
यदि किसी भाषा के लिए अनुवाद अभी तक उपलब्ध नहीं है, तो Starlight पाठकों को उस पेज की कंटेंट डिफ़ॉल्ट भाषा में दिखाएगा (defaultLocale
के माध्यम से सेट होकर)। उदाहरण के लिए, यदि आपने अभी तक अपने About पेज का फ्रेंच संस्करण नहीं बनाया है और आपकी डिफ़ॉल्ट भाषा अंग्रेजी है, तो /fr/about
पर आने वाले दर्शकों को /en/about
से अंग्रेजी कंटेंट इस सूचना के साथ दिखाई देगी कि इस पेज पर है अभी तक अनुवाद नहीं किया गया है। यह आपको अपनी डिफ़ॉल्ट भाषा में कंटेंट जोड़ने में मदद करता है और फिर जब आपके अनुवादकों के पास समय हो तो उसका उत्तरोत्तर अनुवाद करने में मदद करता है।
साइट शीर्षक का अनुवाद करें
डिफ़ॉल्ट रूप से, Starlight सभी भाषाओं के लिए समान साइट शीर्षक का उपयोग करेगा।
यदि आपको प्रत्येक स्थान के लिए शीर्षक को अनुकूलित करने की आवश्यकता है, तो आप Starlight के विकल्पों में title
के लिए एक ऑब्जेक्ट पास कर सकते हैं:
Starlight के UI का अनुवाद करें
अनुवादित कंटेंट फ़ाइलों को होस्ट करने के अलावा, Starlight आपको डिफ़ॉल्ट UI स्ट्रिंग्स (उदाहरण के लिए कंटेंट तालिका में “इस पेज पर” शीर्षक) का अनुवाद करने की अनुमति देता है ताकि आपके पाठक आपकी साइट को पूरी तरह से चयनित भाषा में अनुभव कर सकें।
अंग्रेज़ी, अरबी, इंडोनेशियाई, इतालवी, कातालान, कोरियाई, गैलिशियन, चीनी, चीनी (ताइवान), चेक, जर्मन, जापानी, डच, डेनिश, तुर्की, नॉर्वेजियाई बोकमाल, पुर्तगाली, पोलिश, फ़ारसी, फ़्रेंच, यूक्रेनियाई, रूसी, रोमानियाई, वियतनामी, स्पेनिश, स्लोवाक, स्वीडिश, हिन्दी, और हिब्रू अनुवादित UI स्ट्रिंग्स सामने से मिलती हैं , और हम अधिक डिफ़ॉल्ट भाषाएँ जोड़ने के लिए योगदान का स्वागत करते हैं।
आप i18n
डेटा संग्रह के माध्यम से उन अतिरिक्त भाषाओं के लिए अनुवाद प्रदान कर सकते हैं जिनका आप समर्थन करते हैं - या हमारे डिफ़ॉल्ट लेबल को ओवरराइड कर सकते हैं।
-
i18n
डेटा संग्रह कोsrc/content/config.ts
में कॉन्फ़िगर करें यदि यह पहले से कॉन्फ़िगर नहीं है: -
प्रत्येक अतिरिक्त locale के लिए
src/content/i18n/
में एक JSON फ़ाइल बनाएं, जिसके लिए आप UI अनुवाद स्ट्रिंग प्रदान करना चाहते हैं। उदाहरण के लिए, यह अरबी और सरलीकृत चीनी के लिए अनुवाद फ़ाइलें जोड़ेगा:Directorysrc/
Directorycontent/
Directoryi18n/
- ar.json
- zh-CN.json
-
जिन कुंजियों का आप JSON फ़ाइलों में अनुवाद करना चाहते हैं उनके लिए अनुवाद जोड़ें। केवल मूल्यों का अनुवाद करें, कुंजियाँ अंग्रेजी में छोड़ें (जैसे की
"search.label": "Buscar"
) ये मौजूदा स्ट्रिंग्स के अंग्रेजी डिफ़ॉल्ट हैं जिन्हे Starlight प्रदर्शित करता हैं :Starlight के कोड ब्लॉक Expressive Code लाइब्रेरी द्वारा संचालित होते हैं। आप
expressiveCode
कुंजियों का उपयोग करके उसी JSON फ़ाइल में इसके UI स्ट्रिंग्स के लिए अनुवाद सेट कर सकते हैं:Starlight का खोज मोडल Pagefind लाइब्रेरी द्वारा संचालित है। आप
pagefind
कुंजियों का उपयोग करके उसी JSON फ़ाइल में Pagefind के UI के लिए अनुवाद सेट कर सकते हैं:
अनुवाद स्कीमा विस्तृत करें
i18nSchema()
विकल्पों में विस्तार सेट करके अपनी साइट के अनुवाद शब्दकोशों में कस्टम कुंजियाँ जोड़ें।
निम्नलिखित उदाहरण में, डिफ़ॉल्ट कुंजियों में एक नई, वैकल्पिक custom.label
कुंजी जोड़ी गयी है:
Astro दस्तावेज़ में “एक संग्रह स्कीमा को परिभाषित करना” में कंटेंट संग्रह स्कीमा के बारे में और जानें।
वर्तमान लोकेल तक पहुँचना
आप .astro
अवयवों में वर्तमान लोकेल पढ़ने के लिए Astro.currentLocale
का उपयोग कर सकते हैं।
निम्नलिखित उदाहरण वर्तमान लोकेल को पढ़ता है और इसका उपयोग वर्तमान भाषा में एक परिचय पेज के लिए लिंक बनाने के लिए करता है: