अलग-अलग तरह का कॉन्टेंट दिखाने के लिए, अंतरराष्ट्रीय मानकों के मुताबिक लिखे गए जवाबों ("i18n रीराइट") का इस्तेमाल करना उपयोगकर्ता के देश या पसंदीदा भाषा के आधार पर. यहां कुछ उदाहरण दिए गए हैं कॉन्फ़िगरेशन की जानकारी है, जिसे आप सेट अप कर सकते हैं:
फ़्रेंच भाषा चुनने वाले सभी उपयोगकर्ताओं को एक जैसी फ़्रेंच सामग्री दिखाएं (भले ही, देश के हिसाब से).
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है उदाहरण: फ़्रेंच टेक्स्ट वाला होम पेजफ़्रेंच भाषा में पसंद करने वाले लोगों को फ़्रेंच भाषा में कॉन्टेंट उपलब्ध कराना, लेकिन कनाडाई उपयोगकर्ता, जो फ़्रेंच पसंद करते हैं, कनाडा में फ़्रेंच भाषा में कॉन्टेंट दिखाते हैं आज़माएं.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है उदाहरण: स्टैंडर्ड फ़्रेंच वाक्यांश वाला होम पेज बनाम कैनेडियन फ़्रेंच वाक्यांशकनाडा के सभी उपयोगकर्ताओं को एक जैसा कॉन्टेंट उपलब्ध कराना पसंदीदा भाषा चुनें).
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है उदाहरण: आपकी साइट के लिए "डिफ़ॉल्ट" सेटिंग वाला होम पेज लेकिन एक पासवर्ड के साथ कनाडा के लिए खास सुविधा (जैसे कि हॉलिडे थीम)कनाडा में रहने वाले उन लोगों को फ़्रेंच कॉन्टेंट दिखाना जो फ़्रेंच भाषा पसंद करते हैं.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है उदाहरण: ऐसा होम पेज जिसमें कनाडा के हिसाब से फ़्रेंच वाक्यांश का इस्तेमाल किया गया हो और कनाडा से जुड़ा हो सुविधा (जैसे छुट्टी की थीम)
Firebase होस्टिंग की मदद से, उपयोगकर्ता के आईपी पते की मदद से उसके देश का पता लगाया जाता है. साथ ही,
Accept-Language
अनुरोध हेडर से उपयोगकर्ता की भाषा की प्राथमिकताएं (आम तौर पर)
अपने वेब ब्राउज़र से अपने-आप सेट हो जाता है).
i18n रीराइट सेट अप करें
अपनी होस्टिंग साइट के लिए i18n रीराइट सेट अप करने के लिए आपको एक "i18n
कॉन्टेंट" डायरेक्ट्री का इस्तेमाल करें. इसके बाद, i18n
एट्रिब्यूट जोड़ें
अपनी firebase.json
फ़ाइल में जोड़ें, ताकि आपको नए "i18n कॉन्टेंट" पर ले जाया जा सके डायरेक्ट्री.
यहां सिलसिलेवार तरीके से बताया गया है:
अपनी लोकल ऐप्लिकेशन डायरेक्ट्री के
public
फ़ोल्डर में, एक अलग डायरेक्ट्री बनाएं जोड़ें, और फिर हर भाषा के लिए सब-फ़ोल्डर बनाएं और अलग-अलग देशों के लिए एक साथ उपलब्ध नहीं है.हर सब-फ़ोल्डर में, उस कॉम्बिनेशन के लिए खास कॉन्टेंट जोड़ें, जैसे छुट्टियों की थीम वाले होम पेज या किसी खास भाषा में 404 कोड वाले पेज.
यहां "i18n कॉन्टेंट" का उदाहरण दिया गया है
localized-files
नाम की डायरेक्ट्री:public/ index.html // your site's default homepage 404.html // your site's custom 404 page localized-files/ ALL_ca/ index.html es_ALL/ index.html 404.html fr/ index.html 404.html fr_ca/ index.html
localized-files/
डायरेक्ट्री में, हर फ़ाइल के लिए अलग-अलग सब-फ़ोल्डर मौजूद हैं आपकी साइट द्वारा समर्थित भाषा और देश संयोजन. नाम रखने का पैटर्न हर सब-फ़ोल्डर के लिए, इनमें से किसी एक फ़ॉर्मैट का पालन करना होगा:languageCode_countryCode
: इसमें उपयोगकर्ताओं के हिसाब से कॉन्टेंट शामिल है जिनके पास भाषा की प्राथमिकता और देश का कोड हैlanguageCode
: इसमें उन उपयोगकर्ताओं के लिए खास कॉन्टेंट शामिल होता है जिनके पास वह होता है भाषा प्राथमिकता, लेकिन सामग्री देश-विशिष्ट नहीं है; बुनियादी तौर परlanguageCode_ALL
के बराबर
सब-सेक्शन देखें देश और भाषा के कोड नीचे दिए गए हैं देखें.
ALL
की वैल्यू का इस्तेमाल किया जा सकता है किसी भी देश (जैसेes_ALL/
) या किसी देश के बारे में बताने के लिए (केस-सेंसिटिव) भाषा (जैसेALL_ca/
).सब-फ़ोल्डर की फ़ाइलों के लिए,
public
में मिलती-जुलती फ़ाइलें होना ज़रूरी नहीं है डायरेक्ट्री या अन्य सब-फ़ोल्डर का इस्तेमाल करें. आपके पास ऐसा कॉन्टेंट बनाने का विकल्प है जो ख़ास भाषा और/या देश के लिए.अपनी
firebase.json
फ़ाइल मेंi18n
एट्रिब्यूट जोड़ें और जिसमें आपका "i18n कॉन्टेंट" शामिल है. अपने उदाहरण को आगे देखें:// firebase.json "hosting": { "public": "public", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ], "i18n": { "root": "/localized-files" // directory that contains your "i18n content" } ... }
root
के लिए तय की गई डायरेक्ट्री, उस डायरेक्ट्री का नाम होनी चाहिए आपकी सभी "i18n सामग्री" शामिल है सबफ़ोल्डर में. अगर आपने सभी "i18n कॉन्टेंट" सब-फ़ोल्डर के लिए, जो आपकीpublic
डायरेक्ट्री के रूट में मौजूद है,/
का इस्तेमाल करेंroot
के मान के लिए.root
वैल्यू में आगे और पीछे स्लैश वैकल्पिक हैं.अपना "i18n कॉन्टेंट" डिप्लॉय करें और अपनी होस्टिंग साइट से कॉन्फ़िगर करें.
कुकी ओवरराइड का इस्तेमाल करके अपने सेटअप की जांच की जा सकती है.
देश और भाषा कोड
"i18n content" का नाम रखते समय सबफ़ोल्डर के लिए, आपको दोनों देशों के लिए लोअरकेस का उपयोग करना होगा
और भाषा कोड शामिल हैं. यह बताने के लिए कि आप ALL
वैल्यू (केस-सेंसिटिव) का इस्तेमाल कर सकते हैं
कोई देश (जैसे es_ALL/
) या कोई भी भाषा (जैसे ALL_ca/
).
होस्टिंग को उपयोगकर्ता के आईपी पते से देश का कोड मिलता है. देश कोड अंग्रेज़ी के छोटे अक्षरों का इस्तेमाल करके ISO 3166-1 alpha-2 कोड.
भाषा के कोड, उपयोगकर्ता के Accept-Language
अनुरोध हेडर से मिलते हैं
(आम तौर पर
अपने वेब ब्राउज़र से अपने-आप सेट हो जाता है).
ये ISO 639-1 कोड हैं.
भाषा कोड का इस्तेमाल करते समय इन बातों का ध्यान रखें:
होस्ट करने की वजह से जब "i18n content" खोजा जाता है करने के लिए, यह
Accept-Language
हेडर में क्वालिटी वैल्यू के आधार पर भाषाएं चुनी गई हैं.होस्टिंग की मदद से,
Accept-Language
में किसी भी इलाके और देश के सबटैग को लॉन्च कर दिया जाता है हेडर है, इसलिए "i18n कॉन्टेंट" में भाषा कोड सब-फ़ोल्डर का नाम नहीं जोड़ा जा सकता इनमें ये सब-टैग शामिल होने चाहिए. उदाहरण के लिए, आपes-419
याes-US
का इस्तेमाल भाषा कोड को सब-फ़ोल्डर के नाम में रखें, लेकिन आपes
का इस्तेमाल कर सकते हैं.अगर आपको किसी खास क्षेत्र या देश के हिसाब से कॉन्टेंट दिखाना है, तो उन सब-फ़ोल्डर के लिए जिनमें चुने गए देश की भाषा में आपकी पसंद का कॉन्टेंट मौजूद है सहायता.
"i18n सामग्री" के लिए प्राथमिकता क्रम
अगर आपने i18n रीराइट सेट अप किए हैं, तो होस्टिंग सेवा इन शर्तों के हिसाब से कॉन्टेंट दिखाती है प्राथमिकता क्रम:
रिज़र्व किए गए ऐसे नेमस्पेस जो
/__/*
पाथ सेगमेंट से शुरू होते हैंकॉन्फ़िगर किए गए रीडायरेक्ट
एग्ज़ैक्ट मैच वाला स्टैटिक कॉन्टेंट
भाषा का कोड + देश का कोड (उदाहरण के लिए,
fr_ca/
से कॉन्टेंट)
यह क्रम, अनुरोध की हर भाषा के क्वालिटी की वैल्यू के मुताबिक होता हैAccept-Language
हेडर.सिर्फ़ देश का कोड (उदाहरण के लिए,
ALL_ca/
से कॉन्टेंट)सिर्फ़ भाषा का कोड (उदाहरण के लिए,
fr/
याes_ALL/
का कॉन्टेंट)
यह क्रम, अनुरोध की हर भाषा के क्वालिटी की वैल्यू के मुताबिक होता हैAccept-Language
हेडर."डिफ़ॉल्ट" एग्ज़ैक्ट मैच वाला स्टैटिक कॉन्टेंट
यह ऐसा कॉन्टेंट है जो "i18n कॉन्टेंट" में नहीं है डायरेक्ट्री, जैसे किpublic
डायरेक्ट्री का रूट डालें.
फिर से लिखने के लिए कॉन्फ़िगर किया गया
404 कोड वाली सेटिंग
i18n 404 पेज
यह पूरी तरह मिलान के लिए ऊपर दिए गए प्राथमिकता के क्रम का पालन करता है स्टैटिक कॉन्टेंट.कस्टम 404 पेज
डिफ़ॉल्ट 404 पेज (Firebase से मिला)
प्रायॉरिटी ऑर्डर का उदाहरण
चलिए, ऊपर दिए गए उदाहरण को देखते हैं. हम उदाहरण के तौर पर उसी डायरेक्ट्री का इस्तेमाल करेंगे और अनुरोध का उदाहरण.
"i18n कॉन्टेंट" वाली लोकल प्रोजेक्ट डायरेक्ट्री का उदाहरण डायरेक्ट्री (जिसे
localized-files
कहा जाता है)public/ index.html // your site's default homepage 404.html // your site's custom 404 page localized-files/ ALL_ca/ index.html es_ALL/ index.html 404.html fr/ index.html 404.html fr_ca/ index.html
अनुरोध की जानकारी का उदाहरण
भाषा के कोड:
fr
,en
(फ़्रेंच और फिर अंग्रेज़ी)
भाषा कोड को क्वालिटी वैल्यू के हिसाब से क्रम में लगाया जाता हैAccept-Language
हेडर.देश का कोड:
ca
(कनाडा)
एग्ज़ैक्ट मैच के प्राथमिकता ऑर्डर और भाषा की प्राथमिकताएं, होस्टिंग की मदद से अनुरोध किए गए अनुरोध के लिए डायरेक्ट्री देखी जा सकती हैं पेज को नीचे दिए गए क्रम में रखें.
public/localized-files/fr_ca/
public/localized-files/en_ca/
public/localized-files/ALL_ca/
public/localized-files/fr_ALL/
public/localized-files/fr/
public/localized-files/en_ALL/
public/localized-files/en/
public/
404 कोड वाली सेटिंग
उपयोगकर्ता को कौनसा पेज दिखाया जाएगा?
अनुरोध किया गया पेज:
index.html
अनुरोध किया गया पेज:
awesome-page.html
"i18n कॉन्टेंट" के इस खोज और सेवा के बारे में नीचे दी गई बातों का ध्यान रखें डायरेक्ट्री:
localized-files/
डायरेक्ट्री में,en_ca/
नहीं होता है,en_ALL/
याen/
सबफ़ोल्डर का इस्तेमाल करता है, तो होस्टिंग की सूची में ऊपर बताई गई चीज़ें शामिल नहीं हैं. प्राथमिकता सूची, जब तक कि इसमें अनुरोध के मेल खाने वाला सब-फ़ोल्डर नहीं मिल जाता देश और भाषा के हिसाब से.भले ही,
localized-files/
डायरेक्ट्री मेंes_ALL/
मौजूद हो सब-फ़ोल्डर मौजूद है, तो ऊपर दिए गए अनुरोध के उदाहरण मेंes
याes-foo
शामिल नहीं हैं भाषा कोड है, इसलिए होस्टिंग की ओर से "i18n content" को नहीं खोजा जाएगा वहes
से मेल खाता है.fr/
औरfr_ALL/
नाम के सब-फ़ोल्डर, उपयोगकर्ता के देश और भाषा की पसंद. हालांकि, अगर दोनों सब-फ़ोल्डर मौजूद है, होस्टिंग सेवाfr/
सामग्री से पहलेfr_ALL/
सामग्री प्रस्तुत करेगी.
कुकी से भाषा और देश के कोड बदलें
देश को बदलने के लिए, कुकी का इस्तेमाल करके यह तय किया जा सकता है कि किस तरह का कॉन्टेंट दिखाया जाए और भाषा हेडर.
कुकी में किए गए बदलाव को इस्तेमाल करने के कुछ तरीके यहां दिए गए हैं:
किसी सुविधा की जांच करने के लिए, अलग-अलग भाषा/देश के कॉम्बिनेशन वाली सुविधा इस्तेमाल करें. कॉन्टेंट दिखाया जाता है.
अपने उपयोगकर्ताओं को उनके लिए कॉन्टेंट में बदलाव करने की अनुमति दें. उदाहरण के लिए, आपके पास भाषा चुनने की सुविधा लागू करें. इसके बाद, उपयोगकर्ता के
firebase-language-override
कुकी ज़रूरत के मुताबिक है.
कुकी में बदलाव करने के लिए उसे कॉन्फ़िगर करें. इसके लिए, इन दोनों या किसी एक नाम की मदद से कुकी सेट करें:
firebase-country-override
और firebase-language-override
. उदाहरण के लिए,
नीचे दिया गया JavaScript कोड स्निपेट देश के कोड को ca
में बदल देता है और
Accept-Language
हेडर को fr,en
किया जाएगा:
document.cookie = "firebase-country-override=ca";
document.cookie = "firebase-language-override=fr,en";
भाषा कोड बदलने की सुविधा, कॉमा लगाकर अलग की गई, भाषा कोड की सूची होनी चाहिए सबटैग या क्वालिटी वैल्यू के बिना, प्राथमिकता का क्रम.
कुकी में हुए बदलाव, लॉग में नहीं दिखते.