2011-11-21 13 views
5

यह प्रश्न मुझे उल्लसित स्पष्ट कर सकता है लेकिन ... मैंने वेब की खोज की है और ओवरफ्लो ढेर किया है लेकिन मुझे एक संतोषजनक उत्तर नहीं मिला।वेबसाइट का भाषा चयन

किसी वेब साइट पर भाषा चयन जोड़ने के लिए क्या अच्छी शुरुआत करता है?

मेरे यूआरएल

example.com/de/ example.com/en/ हो जाएगा

वर्तमान भाषा, के साथ साथ एक कुकी के बाद मैं प्रारंभिक भाषा निर्धारित सेट से संकेत मिलता है।

example.com पर लैंडिंग पर मैं पहले (हालिया) कुकी की जांच करूंगा, फिर ACCEPT_LANG के लिए यदि कोई निर्दिष्ट यूआरएल/en /,/de/के साथ दिया गया है।

भाषा हमेशा बुकमार्किंग की अनुमति देने के लिए यूआरएल का हिस्सा रहेगी, यानी मैं example.com/de/ पर रीडायरेक्ट करूंगा यदि मैंने यह निर्धारित किया है कि उपयोगकर्ताओं का इरादा जर्मन में साइट देखना है।

अब मेरा प्रश्न: उपयोगकर्ताओं को पसंद करने वाले सर्वर को सिग्नल करने के लिए इन दिनों पसंदीदा तरीका क्या है? मैं दृश्य चयन (ड्रॉप डाउन बनाम भाषा सूची à la विकिपीडिया) और न ही geolocating बनाम ACCEPT_LANG के बारे में बात कर रहा हूं लेकिन उपयोगकर्ता सर्वर को सिग्नल कर रहा हूं। मैं मन में है: (उपयोगकर्ता मान लिया जाये कि अंग्रेजी साइट पर है और जर्मन साइट पर स्विच करना चाहता है)

  1. Do क्लाइंट साइड जावास्क्रिप्ट wizardry और बदल location.href रों // en /// डी/
  2. सर्वर पर भाषा को बदलने के लिए भाषा को पूर्व-प्रस्तुत करें (मुझे गैर-मौजूदा अनुवादों के लिए लिंक दबाने का मौका मिलेगा)
  3. example.com?lang=de & मूल = पर प्रतिक्रिया पोस्ट करें जो प्रतिक्रिया पुनर्निर्देशन करता है। यदि उपयोगकर्ता फ़ील्ड भरते समय भाषा स्विच करने का निर्णय लेता है, तो मुझे फॉर्म वैरिएबल को दोबारा भरने का मौका मिलेगा, लेकिन मैं इस बिंदु पर निश्चित नहीं हूं।

अन्य संभावनाएं या तकनीकी रूप से सबसे अच्छा क्या देखा जाता है?

+0

4।एक स्मार्ट डिफ़ॉल्ट (ब्राउज़र भाषा?) का उपयोग करें और उपयोगकर्ता द्वारा कुकी में किसी भी बदलाव को स्टोर करें। – Jeroen

+0

"example.com पर लैंडिंग पर ...": यूआरएल में भाषा उपस्थिति की जांच करना चाहिए, आखिरी नहीं। –

+0

समाधान 3 के संबंध में, सर्वर शायद 'मूल' पैरामीटर के बजाय रेफरर का उपयोग कर सकता है। क्लीनर और कोड के लिए आसान है। –

उत्तर

1

मेरा निजी पसंदीदा समाधान 3 के आधार पर है क्योंकि इसका मतलब है कि आपके पास एक विशिष्ट 'भाषा बदलें' अनुरोध है जहां आप कुकी में वरीयता को सहेजने जैसे विशिष्ट प्रसंस्करण कर सकते हैं।

यूआरएल को संशोधित करने के लिए बस क्लाइंट-साइड विज़ार्ड्री का उपयोग कर सर्वर को यह नहीं बताता कि उपयोगकर्ता वास्तव में भाषा स्विच करना चाहता है। यह हो सकता है कि उपयोगकर्ता इस भाषा-विशिष्ट पृष्ठ पर Google/Bing/जो भी खोज से आ रहा हो, उस स्थिति में, उपयोगकर्ता ने सक्रिय रूप से कोई भाषा नहीं चुनी है, इसलिए पसंद कुकी में संग्रहीत नहीं की जानी चाहिए।

(मुझे यकीन है कि मैं समझता हूँ कि आप # 2 समाधान में क्या मतलब है नहीं कर रहा हूँ। आप कृपया स्पष्ट कर सकते हैं?)

Btw, pleaaaaase, कोई जियोलोकेशन आधारित भाषा चयन। मैं उन सभी साइटों को प्रतिष्ठित कर सकता हूं जो ऐसा करते हैं: वे डच में प्रदर्शित होते हैं क्योंकि मैं बेल्जियम हूं और 60% बेल्जियम आबादी डच वक्ताओं हैं। हम में से 40% फ्रेंच बोलने, eventhough हमारे स्वीकार भाषा के लिए बुरी किस्मत वैकल्पिक रूप से आप localStorage कुंजी/मान जोड़े इस्तेमाल कर सकते हैं फ्रेंच :-(

+0

# 2 से मेरा मतलब है कि एक सर्वरसाइड स्क्रिप्ट जांचता है कि अनुरोधित पृष्ठ उपलब्ध है या नहीं, जर्मन भी। यदि हां, तो एक प्रस्तुत किया जाता है। यदि नहीं - भाषा स्विच प्रदर्शित नहीं होता है। # 1 के रूप में एक क्लाइंटसाइड जावास्क्रिप्ट केवल – JohnDoe

+0

बीटीडब्लू को इस लिंक को बिना शर्त रूप से प्रस्तुत करने में सक्षम होगा, मैं इस आवेग के तहत था कि # 1 तक, location.href को असाइन करना HTTP GET जारी करेगा। – JohnDoe

0

के लिए सेट है, और पृष्ठ लोड होने यह जाँच करता है देखने के लिए एक प्राथमिकता सेट है, तो , उन्हें तदनुसार निर्देशित करता है। कुकीज़ की तरह उन्हें किसी भी समय शुद्ध किया जा सकता है, लेकिन स्थानीय भंडारण का उपयोग ब्राउज़र टैब और सत्रों में जारी रहता है।

संबंधित मुद्दे