2008-10-01 13 views
6

GWT लोकेल प्रॉपर्टी या लोकेल क्वेरी स्ट्रिंग से लोकेल हो जाता है। यदि न तो निर्दिष्ट किया गया है, तो यह "डिफ़ॉल्ट" (यानी en_US) लोकेल का उपयोग करता है।जीडब्ल्यूटी ब्राउज़र ब्राउज़र को अनदेखा क्यों करता है?

यह ब्राउज़र सेटिंग्स से क्यों नहीं मिलता है?

ऐसा लगता है इस का एकमात्र समाधान एक JSP कि ब्राउज़र स्थानों पढ़ता है और वातावरण सेट या क्वेरी स्ट्रिंग का उपयोग कर पुनर्निर्देश की तरह कुछ के साथ अपने स्थिर HTML लांच पेज को बदलने के लिए है। इस से बेहतर समाधान होना चाहिए या बस एक लोकेल को हार्ड कोडिंग करना होगा, निश्चित रूप से?

उत्तर

3

यदि आप अपनी * .gwt.xml फ़ाइल में उपलब्ध भाषाओं की एक सूची डालते हैं तो यह डिफ़ॉल्ट रूप से सूचीबद्ध पहली भाषा में स्विच होगा।

<!-- Slovenian in Slovenia --> 
<extend-property name="locale" values="sl"/> 

<!-- English language, independent of country --> 
<extend-property name="locale" values="en"/> 
+0

पर भेजे गए HTTP शीर्षलेख से, मेरे पास यह था जहां मैंने en_AU को केवल विस्तार-संपत्ति के रूप में जोड़ा था और यह अभी भी "डिफ़ॉल्ट" के लिए डिफ़ॉल्ट है। यह लोकेल क्वेरी पैरामीटर या टैग वास्तव में en_AU पर प्राप्त करने के लिए लिया। मैं कल्पना नहीं कर सकता कि सिर्फ "एन" कोई अलग होगा, लेकिन अगर यह भी था, तो इससे मदद नहीं मिलेगी। मैं en_US नहीं चाहता। – cletus

6

इस स्विच अपने * .gwt.xml में

<set-configuration-property name="locale.useragent" value="Y"/> 

में जोड़ देगा भाषा का चयन ब्राउज़र में चयनित भाषा के आधार पर डाल सकते हैं। तुम भी

<set-configuration-property name="locale.searchorder" value="queryparam,cookie,meta,useragent"/> 

की स्थापना करके स्थान के लिए खोज के क्रम को नियंत्रित लेकिन सावधान रहना IE में यह काम नहीं करता है कि कर सकते हैं - आप सर्वर साइड भाषा आईई द्वारा भेजें 'स्वीकार-भाषा' शीर्षक के आधार पर ले विकसित करनी चाहिए।

0

यदि आपका प्रवेश पृष्ठ एक जेएसपी है तो आप लोकेल को गतिशील रूप से सेट करने के लिए अनुरोध के Accept-Language शीर्षलेख का निरीक्षण कर सकते हैं।

1

आप को बचाने और यह मान भेजने के लिए एक कुकी उपयोग कर सकते हैं, लेकिन उसके लिए आपको अपनी * .gwt.xml पहले

<set-configuration-property name="locale.cookie" value="yourCookieName"/> 
<set-configuration-property name="locale.searchorder" value="queryparam,cookie,meta,useragent"/> 

नोट जोड़ने के लिए है कि "queryparam" सबसे बड़ी प्राथमिकता यहाँ है है , जो http क्वेरी का उपयोग करके एक नया लोकेल सेट करने और कुकी पर मान को अनदेखा करने की अनुमति देता है।

0

इस प्रविष्टि को देखने के लिए अपने * .gwt.xml फ़ाइल में जोड़ें!

कृपया अधिक जानकारी के लिए निम्न पंक्ति देखें!

<set-configuration-property name="locale.useragent" value="Y"/>

0

यह मेरे लिए काम किया, मुझे आशा है कि यह भी आप के लिए काम करता है।

मेरी समस्या यह थी कि मैंने .gwt.xml मॉड्यूल डिस्क्रिप्टर में कोई लोकेल मान घोषित नहीं किया है। उस स्थिति में केवल डिफ़ॉल्ट लोकेल का उपयोग किया जाता है। GWT क्योंकि किसी भी अलग समर्थित स्थान एक नया संकलन यात्रा/क्रमचय मतलब यह है कि जिस तरह से करता है। इसलिए केवल घोषित स्थानीय लोगों का उपयोग किया जाता है।

<!-- Locales --> 
<extend-property name="locale" values="en_US"/> 
<extend-property name="locale" values="es"/>  
<set-property-fallback name="locale" value="en_US"/> 
<set-configuration-property name="locale.useragent" value="Y" /> 
<set-configuration-property name="locale.searchorder" value="queryparam,cookie,meta,useragent" /> 

पहली और दूसरी लाइनों (मेरे उदाहरण में अंग्रेजी अमेरिका और स्पेनिश से विशिष्ट देश के बिना) उपलब्ध/समर्थित स्थान सेट:

यहाँ आप एक उदाहरण है। तीसरी लाइन डिफ़ॉल्ट स्थान मामले में कोई भी पता चला है (यह डिफ़ॉल्ट घोषणा के बाद डिफ़ॉल्ट मान एक extend-property लाइन में घोषित किया जाता है निर्धारित किया जाना चाहिए) तय करता है। चौथी लाइन के HTTP-हेडर स्वीकार-भाषा ब्राउज़र द्वारा भेजा गया (शायद डिफ़ॉल्ट रूप से और न सक्षम किया गया है सब पर स्थापित करने के लिए आवश्यक) भी तरह से स्थान का पता लगाने के लिए सक्षम बनाता है।

  1. URL क्वेरी
  2. कुकीज़ से
  3. में एक पैरामीटर HTML पृष्ठ
  4. में एक मेटा मूल्य के रूप में के रूप में: अंतिम पंक्ति जिस क्रम में विभिन्न जांच प्रक्रिया का स्थान पता लगाने का प्रयास सेट ब्राउज़र
संबंधित मुद्दे