उपयोगकर्ता के देश या पसंदीदा भाषा के आधार पर विभिन्न सामग्री परोसने के लिए अंतर्राष्ट्रीयकरण पुनर्लेखन ("i18n पुनर्लेखन") का उपयोग करें। यहां कुछ उदाहरण कॉन्फ़िगरेशन दिए गए हैं जिन्हें आप सेट अप कर सकते हैं:
उन सभी उपयोगकर्ताओं को समान फ़्रेंच सामग्री परोसें जो फ़्रेंच पसंद करते हैं (देश की परवाह किए बिना)।
उदाहरण: फ़्रेंच पाठ वाला एक मुखपृष्ठउन उपयोगकर्ताओं को मानक फ़्रेंच सामग्री परोसें जो फ़्रेंच पसंद करते हैं, लेकिन उन कनाडाई उपयोगकर्ताओं को जो फ़्रेंच पसंद करते हैं, इसके बजाय कनाडाई फ़्रेंच सामग्री परोसें।
उदाहरण: मानक फ़्रेंच फ़्रेज़िंग वाला मुखपृष्ठ बनाम कनाडाई फ़्रेंच फ़्रेज़िंग वाला मुखपृष्ठसभी कनाडाई उपयोगकर्ताओं को समान सामग्री परोसें (उनकी भाषा प्राथमिकता की परवाह किए बिना)।
उदाहरण: आपकी साइट की "डिफ़ॉल्ट" भाषा वाला एक मुखपृष्ठ लेकिन कनाडा-विशिष्ट सुविधा के साथ (जैसे छुट्टियों की थीम)उन कनाडाई उपयोगकर्ताओं को कनाडाई फ़्रेंच सामग्री परोसें जो फ़्रेंच पसंद करते हैं।
उदाहरण: कैनेडियन फ़्रेंच वाक्यांश और कनाडा-विशिष्ट सुविधा वाला एक मुखपृष्ठ (छुट्टियों की थीम की तरह)
फायरबेस होस्टिंग उपयोगकर्ता के देश को उनके आईपी पते से और उपयोगकर्ता की भाषा प्राथमिकताओं को Accept-Language
अनुरोध हेडर (आमतौर पर उनके वेब ब्राउज़र द्वारा स्वचालित रूप से सेट ) से निर्धारित करता है।
i18n पुनर्लेखन सेट करें
अपनी होस्टिंग साइट के लिए i18n रीराइट सेट अप करने के लिए, आपको अपनी सभी स्थानीयकृत सामग्री के लिए एक "i18n सामग्री" निर्देशिका बनानी होगी, फिर अपनी नई "i18n सामग्री" निर्देशिका को इंगित करने के लिए अपनी firebase.json
फ़ाइल में i18n
विशेषता जोड़ें।
यहां विस्तृत चरण दिए गए हैं:
अपनी स्थानीय ऐप निर्देशिका के
public
फ़ोल्डर में, अपनी "i18n सामग्री" के लिए एक अलग निर्देशिका बनाएं, फिर अपनी साइट द्वारा समर्थित प्रत्येक भाषा और देश संयोजन के लिए सबफ़ोल्डर बनाएं।प्रत्येक सबफ़ोल्डर में, उस संयोजन के लिए विशिष्ट सामग्री जोड़ें, जैसे अवकाश-थीम वाले मुखपृष्ठ या भाषा-विशिष्ट 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
public/ // matches requests that aren't specified by your "i18n content" subfolders // example: display your homepage in the "default" language for your site with no country-specific features index.html // your site's default homepage 404.html // your site's custom 404 page localized-files/ // matches requests from Canada with any language preference // example: display your homepage in the "default" language for your site with a Canada-specific feature ALL_ca/ index.html // matches requests from any country with a language preference of `es` or `es-foo` // example: display your homepage in Spanish with no country-specific features es_ALL/ index.html 404.html // your site's custom 404 page in Spanish // matches requests from any country with a language preference of `fr` or `fr-foo` // example: display your homepage in Standard French with no country-specific features fr/ index.html 404.html // your site's custom 404 page in French // matches requests from Canada with a language preference of `fr` or `fr-foo` // example: display your homepage in Canadian French and/or with a Canada-specific feature fr_ca/ index.html
localized-files/
निर्देशिका में आपकी साइट द्वारा समर्थित प्रत्येक भाषा और देश संयोजन के लिए अलग-अलग सबफ़ोल्डर होते हैं। प्रत्येक सबफ़ोल्डर के नामकरण पैटर्न को इनमें से किसी एक प्रारूप का पालन करना होगा:languageCode_countryCode
: इसमें उन उपयोगकर्ताओं के लिए विशिष्ट सामग्री शामिल है जिनके पास वह भाषा प्राथमिकता और वह देश कोड हैlanguageCode
: इसमें उन उपयोगकर्ताओं के लिए विशिष्ट सामग्री शामिल है जिनकी भाषा प्राथमिकता है, लेकिन सामग्री देश-विशिष्ट नहीं है; मूलतःlanguageCode_ALL
के समतुल्य
इन कोडों के बारे में अधिक जानकारी के लिए नीचे उपधारा देश और भाषा कोड देखें। आप किसी भी देश (जैसे
es_ALL/
) या किसी भाषा (जैसेALL_ca/
) को इंगित करने के लिएALL
(केस-सेंसिटिव) के मान का उपयोग कर सकते हैं।सबफ़ोल्डर की फ़ाइलों को
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 सामग्री" सबफ़ोल्डर्स का नामकरण करते समय, आपको देश और भाषा कोड दोनों के लिए लोअरकेस का उपयोग करना होगा। आप किसी भी देश (जैसे es_ALL/
) या किसी भाषा (जैसे ALL_ca/
) को इंगित करने के लिए ALL
(केस-सेंसिटिव) के मान का उपयोग कर सकते हैं।
होस्टिंग उपयोगकर्ता के आईपी पते से देश कोड प्राप्त करता है। देश कोड दो अक्षर वाले आईएसओ 3166-1 अल्फा-2 कोड हैं।
भाषा कोड उपयोगकर्ता के Accept-Language
अनुरोध हेडर (आमतौर पर उनके वेब ब्राउज़र द्वारा स्वचालित रूप से सेट ) से प्राप्त किए जाते हैं। वे ISO 639-1 कोड हैं। भाषा कोड का उपयोग करते समय निम्नलिखित को ध्यान में रखें:
जब होस्टिंग यह खोजती है कि कौन सी "i18n सामग्री" परोसी जाए, तो यह
Accept-Language
हेडर में गुणवत्ता मूल्यों के आधार पर भाषाओं को ऑर्डर करती है।होस्टिंग
Accept-Language
हेडर में किसी भी क्षेत्रीय और देश उपटैग को हटा देता है, इसलिए "i18n सामग्री" सबफ़ोल्डर नाम में भाषा कोड में ये उपटैग नहीं हो सकते हैं। उदाहरण के लिए, आप सबफ़ोल्डर नाम में भाषा कोड के रूप मेंes-419
याes-US
का उपयोग नहीं कर सकते, लेकिन आपes
उपयोग कर सकते हैं।यदि आप विशिष्ट क्षेत्रीय या देश की सामग्री परोसना चाहते हैं, तो आप सबफ़ोल्डर बना सकते हैं जिसमें वह विशिष्ट भाषा-देश सामग्री शामिल है जिसका आप समर्थन करना चाहते हैं।
इस उदाहरण में,
es
,es-es
, या यहां तक किes-419
की भाषा प्राथमिकता के साथ स्पेन से एक अनुरोध कोes_es/
सबफ़ोल्डर से सामग्री प्राप्त होगी क्योंकि होस्टिंग उन सभी भाषा कोडों कोes
के रूप में मानता है।संयुक्त राज्य अमेरिका, मेक्सिको, या
es-419
की भाषा प्राथमिकता वाले किसी अन्य देश से अनुरोध कोes_ALL/
सबफ़ोल्डर से सामग्री प्राप्त होगी क्योंकि होस्टिंगes-419
es
के रूप में मानता है।public/ // matches requests that aren't specified by your "i18n content" subfolders index.html // the site's default homepage localized-files/ // matches requests from Spain with a language preference of `es` or `es-foo` es_es/ index.html // matches requests from any other country with a language preference of `es` or `es-foo` es_ALL/ index.html
इस उदाहरण में,
es-419
की भाषा प्राथमिकता के साथ मेक्सिको से एक अनुरोध कोes_mx/
सबफ़ोल्डर से सामग्री प्राप्त होगी क्योंकि होस्टिंग भाषा कोडes-419
es
के रूप में मानता है।हालाँकि, संयुक्त राज्य अमेरिका से
es-419
की भाषा प्राथमिकता वाले अनुरोध कोes_ALL/
सबफ़ोल्डर से सामग्री प्राप्त होगी क्योंकि होस्टिंगes-419
कोes
मानता है और कोईes_us/
सबफ़ोल्डर नहीं है।public/ // matches requests that aren't specified by your "i18n content" subfolders index.html // the site's default homepage localized-files/ // matches requests from Argentina with a language preference of `es` or `es-foo` (mimics behavior of `es-ar` header tag) es_ar/ index.html // matches requests from Spain with a language preference of `es` or `es-foo` (mimics behavior of `es-es` header tag) es_es/ index.html // matches requests from Mexico with a language preference of `es` or `es-foo` (mimics behavior of `es-mx` header tag) es_mx/ index.html // matches requests from any other country with a language preference of `es` or `es-foo` (mimics behavior of `es-419` header tag) es_ALL/ index.html
"i18n सामग्री" के लिए प्राथमिकता क्रम
यदि आप i18n पुनर्लेखन सेट करते हैं, तो होस्टिंग निम्नलिखित प्राथमिकता क्रम के आधार पर सामग्री प्रदान करता है:
आरक्षित नामस्थान जो
/__/*
पथ खंड से शुरू होते हैंकॉन्फ़िगर किया गया रीडायरेक्ट
सटीक-मिलान स्थैतिक सामग्री
भाषा कोड + देश कोड (उदाहरण के लिए,
fr_ca/
से सामग्री)
आदेश अनुरोध केAccept-Language
हेडर में प्रत्येक भाषा के लिए गुणवत्ता मूल्यों का पालन करता है।केवल देश कोड (उदाहरण के लिए,
ALL_ca/
से सामग्री)केवल भाषा कोड (उदाहरण के लिए,
fr/
याes_ALL/
से सामग्री)
आदेश अनुरोध केAccept-Language
हेडर में प्रत्येक भाषा के लिए गुणवत्ता मूल्यों का पालन करता है।"डिफ़ॉल्ट" सटीक-मिलान स्थैतिक सामग्री
यह वह सामग्री है जो "i18n सामग्री" निर्देशिका के बाहर है, जैसेpublic
निर्देशिका के मूल में।
पुनः कॉन्फ़िगर किया गया
404 हैंडलिंग
i18n 404 पृष्ठ
यह सटीक-मिलान स्थिर सामग्री के लिए ऊपर सूचीबद्ध समान प्राथमिकता क्रम का पालन करता है।कस्टम 404 पेज
डिफ़ॉल्ट 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
उदाहरण अनुरोध जानकारी
भाषा कोड:
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
fr_ca/
सबफ़ोल्डर सेindex.html
चूंकि होस्टिंग पहले
fr_ca/
सबफ़ोल्डर को खोजती है, इसलिए वह उस सबफ़ोल्डर मेंindex.html
के लिए सटीक-मिलान ढूंढ लेगी।अनुरोधित पृष्ठ:
awesome-page.html
404.html
fr/
सबफ़ोल्डर सेहोस्टिंग पहले सटीक-मिलान के लिए प्राथमिकता क्रम में संपूर्ण निर्देशिका (सभी "i18n सामग्री" सबफ़ोल्डर्स और रूट निर्देशिका सहित) की खोज करती है, लेकिन
awesome-page.html
के लिए कोई सटीक-मिलान नहीं है।इसलिए, होस्टिंग अपनी 404 हैंडलिंग शुरू करेगी, जो सटीक-मिलान खोजों के समान i18n प्राथमिकता क्रम का पालन करती है।
fr/
सबफ़ोल्डर खोजा गया पहला सबफ़ोल्डर है जिसमें 404 पृष्ठ है।
"i18n सामग्री" निर्देशिका की इस खोज-और-सेवा के बारे में निम्नलिखित पर ध्यान दें:
localized-files/
निर्देशिका में वास्तव मेंen_ca/
,en_ALL/
, याen/
सबफ़ोल्डर शामिल नहीं हैं, इसलिए होस्टिंग प्राथमिकता सूची को तब तक नीचे छोड़ देगी जब तक उसे अनुरोध के भाषा-देश संयोजन के लिए एक मिलान सबफ़ोल्डर नहीं मिल जाता।भले ही
localized-files/
निर्देशिका में एकes_ALL/
सबफ़ोल्डर शामिल है, ऊपर दिए गए उदाहरण अनुरोध मेंes
याes-foo
भाषा कोड शामिल नहीं है, इसलिए होस्टिंगes
से मेल खाने वाली "i18n सामग्री" की खोज नहीं करेगी।fr/
औरfr_ALL/
कहे जाने वाले सबफ़ोल्डर उपयोगकर्ता के देश और भाषा प्राथमिकताओं के दृष्टिकोण से समतुल्य हैं। हालाँकि, यदि दोनों सबफ़ोल्डर मौजूद हैं, तो होस्टिंगfr/
सामग्री से पहलेfr_ALL/
सामग्री परोसेगी।
कुकीज़ के साथ भाषा और देश कोड को ओवरराइड करें
आप देश और भाषा शीर्षलेखों को ओवरराइड करने के लिए कुकीज़ का उपयोग करके यह बदल सकते हैं कि कौन सी सामग्री परोसी जाए।
यहां कुछ तरीके दिए गए हैं जिनसे आप कुकी ओवरराइड का उपयोग कर सकते हैं:
यह जांचने के लिए कि कौन सी सामग्री परोसी गई है, विभिन्न भाषा/देश संयोजनों के साथ एक सुविधा का परीक्षण करें।
अपने उपयोगकर्ताओं को उनके द्वारा देखी जाने वाली सामग्री को बदलने में सक्षम करें। उदाहरण के लिए, आप एक भाषा पिकर लागू कर सकते हैं, फिर उपयोगकर्ता की
firebase-language-override
कुकी को तदनुसार सेट कर सकते हैं।
कुकी ओवरराइड को कॉन्फ़िगर करने के लिए, कुकीज़ को दोनों या इनमें से किसी एक नाम से सेट करें: firebase-country-override
और firebase-language-override
। उदाहरण के लिए, निम्नलिखित जावास्क्रिप्ट कोड स्निपेट देश कोड को ca
और Accept-Language
हेडर को fr,en
ओवरराइड करता है:
document.cookie = "firebase-country-override=ca";
document.cookie = "firebase-language-override=fr,en";
भाषा कुकी ओवरराइड, उपटैग या गुणवत्ता मानों के बिना, वरीयता के क्रम में भाषा कोड की अल्पविराम से अलग की गई सूची होनी चाहिए।
कुकी ओवरराइड लॉग में प्रतिबिंबित नहीं होते हैं।