आपको req.headers["accept-language"]
में स्ट्रिंग को पार्स करने की आवश्यकता होगी। जो आपको ग्राहक से पसंदीदा भाषाओं की प्राथमिकता सूची देगा। यदि आपकी भाषा समर्थित है या नहीं तो आप req.acceptsLanguages(lang [, ...])
भी देख सकते हैं।
मैं किसी भी भाषा मिलान कार्य करने के लिए express-request-language का उपयोग करने की दृढ़ता से अनुशंसा करता हूं, क्योंकि इसे पहली बार सही करना मुश्किल हो सकता है।
अधिकांश समय, एक भाषा से मेल खाने के लिए पर्याप्त नहीं है। एक उपयोगकर्ता एक पसंदीदा भाषा बदलना चाह सकता है। express-request-language
आपको कुकी में पसंदीदा भाषा संग्रहीत करने में सहायता करता है, यह आपके सर्वर को पसंदीदा भाषा बदलने के लिए एक यूआरएल पथ भी देता है।
सभी कार्यक्षमता ऊपर कोड की लाइनों की सिर्फ एक जोड़े के साथ किया जा सकता है:
app.use(requestLanguage({
languages: ['en-US', 'zh-CN'],
cookie: {
name: 'language',
options: { maxAge: 24*3600*1000 },
url: '/languages/{language}'
}
}));
कोई मुकाबला नहीं के मामले में, मिडलवेयर भी एक डिफ़ॉल्ट भाषा (en-US
ऊपर) से मेल खाएगी।
req.headers ["स्वीकृति-भाषा"] रिटर्न: "uk, ru; q = 0.8, en-us; q = 0.5, en; q = 0.3" चयनित भाषा "uk" है। इस भाषा को सूची से कैसे प्राप्त करें? –
@OlegDats लोकेल मॉड्यूल आपको इसका विश्लेषण करने में मदद करेगा, लेकिन मूल रूप से इसका मतलब यह है कि उपयोगकर्ता स्थानीय (प्राथमिकता क्रम में) ब्रिटेन (यूके अंग्रेजी), आरयू (रूसी), एन-यूएस (यूएस अंग्रेज़ी), एन (सादा अंग्रेजी), क्यू एक वजन कारक है, उच्च क्यू का मतलब उच्च वरीयता है। –
@ जोचिम इक्सक्सन यूके यूके अंग्रेजी नहीं है, जो 'एन-जीबी' होगा। शायद ब्रिटेन Ukranian है। पहले दो अक्षर हमेशा लेन-देन होते हैं, क्षेत्र नहीं। – UpTheCreek