2012-01-16 29 views
18

वेब सर्च कर रहे हैं, मैं मामलों में जहां विशेषताओं के निम्नलिखित संयोजन भूमंडलीकरण खंड में प्रयोग किया जाता है के बहुत सारे देख रहा हूँ: संस्कृति = "ऑटो", uiCulture = "ऑटो", enableClientBasedCulture = "true", जैसे:क्या Web.config में enableClientBasedCulture विशेषता बिल्कुल काम करती है?

<globalization uiCulture="auto" culture="auto" requestEncoding="utf-8" responseEncoding="utf-8" enableClientBasedCulture="true"/> 

प्रलेखन कहते हैं: http://msdn.microsoft.com/en-us/library/system.web.configuration.globalizationsection.enableclientbasedculture(v=VS.90).aspx

जब EnableClientBasedCulture संपत्ति सक्षम किया गया है, संस्कृति और UICulture गुण AcceptLanguage हेडर फ़ील्ड पर आधारित होते हैं मूल्य ग्राहक ब्राउज़र द्वारा भेजा गया है कि। यदि AcceptLanguage शीर्षलेख मान किसी विशिष्ट संस्कृति के लिए मैप नहीं किया जा सकता है, तो संस्कृति और यूआईसील्चर मानों का उपयोग किया जाता है। मूल मूल्य गलत है।

संस्कृति के लिए और uiCulture गुण, "ऑटो" मतलब http://msdn.microsoft.com/en-us/library/bz9tc508(v=VS.90).aspx

ASP.NET यूआई संस्कृति और पहली भाषा कि मौजूदा ब्राउज़र में निर्दिष्ट किया जाता है करने के लिए संस्कृति की स्थापना की है करने के लिए माना जाता है सेटिंग्स, यूआईसील्चर सेट करें और ऑटो को संस्कृति। वैकल्पिक रूप से, आप इस मान को ऑटो: culture_info_name पर सेट कर सकते हैं, जहां culture_info_name एक संस्कृति का नाम है। संस्कृति के नामों की एक सूची के लिए, CultureInfo देखें। आप इस सेटिंग को या तो @ पृष्ठ निर्देश या Web.config फ़ाइल में बना सकते हैं।

मान लीजिए कि ब्राउज़र AcceptLanguage शीर्षलेख फ़ील्ड मान में अमान्य या कोई संस्कृति नाम भेजता है। चूंकि enableClientBasedCulture = "true", अनुप्रयोग सर्वर को AcceptLanguage शीर्षलेख फ़ील्ड में जो कुछ भी उपयोग करने का प्रयास करना है, लेकिन अमान्य संस्कृति नाम के साथ, यह ऐसा करने में विफल रहता है और संस्कृति = "ऑटो" और uiCulture = "auto पर वापस आ जाता है ", लेकिन ऑटो/ऑटो सेटिंग्स स्वयं अमान्य डेटा का कोई भी उपयोग करने में असफल हो जाएंगी।

अब मान लें कि हम सर्वर को वैध संस्कृति नाम भेजते हैं, उदा। "De-डे"। एप्लिकेशन सर्वर को अभी भी AcceptLanguage शीर्षलेख फ़ील्ड मान का उपयोग करने के लिए कहा गया है क्योंकि enableClientBasedCulture = "true", लेकिन चूंकि संस्कृति और uiCulture "ऑटो" पर सेट हैं, इसलिए वे उस मान का उपयोग करते थे।

मेरा पहला प्रश्न है: ऑटो/ऑटो को सही के साथ संयोजित करने का क्या मतलब है? मेरा स्वयं का विश्वास यह है कि यदि संस्कृति = "ऑटो" और uiCulture = "auto", enableClientBasedCulture = "true" का उपयोग करके अनावश्यक होगा। मेरे अपने परीक्षणों से पता चला है कि ऑटो/ऑटो केवल समान रूप से अकेले काम करता है जब वे सक्षम क्लाइंटबेसेड कॉल्चर विशेषता के साथ मिलते हैं, लेकिन जैसा कि मैं वेब पर कई उदाहरणों में ऑटो/ऑटो/सच्चा संयोजन सुझा रहा हूं, मुझे आश्चर्य है कि क्या मैं कुछ अनदेखा किया है।

मैंने ऑटो/ऑटो सेटिंग्स के बिना enableClientBasedCulture = "true" का उपयोग करने का प्रयास किया है, उदा।

<globalization requestEncoding="utf-8" responseEncoding="utf-8" enableClientBasedCulture="true"/> 

यह बिल्कुल काम नहीं करता है; ऐसा प्रतीत होता है कि क्लाइंट सर्वर की संस्कृति और uiCulture सेटिंग्स को बलपूर्वक खिलाया गया है, भले ही सक्षम क्लाइंटबैस्ड कल्चर = "सत्य" माना जाता है (अंतर्निहित?) उन गुणों को AcceptLanguage शीर्षलेख फ़ील्ड मान के अनुसार सेट करने का ख्याल रखता है।

मैंने फिर संस्कृति और uiCulture के लिए एक विशिष्ट संस्कृति के साथ enableClientBasedCulture संयोजन करने का प्रयास किया, उदाहरण के लिए

<globalization uiCulture="da-DK" culture="da-DK" requestEncoding="utf-8" responseEncoding="utf-8" enableClientBasedCulture="true"/> 

इस मामले में, ग्राहक ब्राउज़र, "दा-डीके" का उपयोग करने के लिए अपनी भाषा सेटिंग्स की परवाह किए बिना मजबूर किया गया।

http://msdn.microsoft.com/en-us/library/hy4kkhe0(v=VS.90).aspx को देखते हुए मैं enableClientBasedCulture के लिए इस देखें:

यह विशेषता उपयोग में इस समय नहीं है।

.NET परावर्तक का उपयोग करके, मैंने .NET 3.5 फ्रेमवर्क असेंबली का सभी संकुचित कर दिया है और सक्षम क्लाइंटबेसयुक्त संस्कृति की खोज की है। मुझे System.Web.Configuration \ GlobalizationSection में कुछ कोड मिला है जो मान को पढ़ता है और इसे किसी संपत्ति के माध्यम से उपलब्ध कराता है, लेकिन अन्यथा इसके साथ कुछ भी नहीं करता है।

होस्टिंग में होस्टिंग \ होस्टिंग एंटरप्राइज मुझे सेटकल्चर नामक एक विधि मिलती है जो ग्लोबललाइजेशन पैरामीटर से संस्कृति और uiCulture मूल्यों को पकड़ती है, लेकिन मुझे अभी तक कोई भी कोड नहीं मिला है जो सक्षम क्लाइंटबेसयुक्त कल्चर विशेषता का उपयोग करता है।

तो मेरा दूसरा प्रश्न है: क्या सक्षम क्लाइंट आधारित संस्कृति का वास्तव में कहीं भी उपयोग किया जा रहा है और यदि हां, तो मुझे यह साबित करने के लिए एक परीक्षण कार्यक्रम को कैसे कॉन्फ़िगर करना चाहिए कि इसका कोई प्रभाव हो?

उत्तर

5

आप कोशिश करना चाहते हो सकता है:

<globalization uiCulture="auto:da-DK" culture="auto:da-DK" requestEncoding="utf-8" responseEncoding="utf-8" /> 

मेरा मानना ​​है कि यह पहली AcceptLanguage हैडर से संस्कृति का उपयोग करेगा अगर निर्दिष्ट डिफ़ॉल्ट करने के लिए उपलब्ध है, और वापस आने।

+1

हां, लेकिन प्रश्न 1 थे) ऑटो/ऑटो/सच्चे मूल्यों के साथ सभी तीन विशेषताओं को शामिल करने का उद्देश्य क्या है और 2) सक्षम क्लाइंट आधारित संस्कृति का उपयोग किसी भी चीज़ के लिए किया जा रहा है। आपके उदाहरण में enableClientBasedCulture विशेषता उपयोग का एक उदाहरण शामिल नहीं है। –

+1

@ जोर्जन: < वैश्वीकरण के लिए प्रलेखन> enableClientBasedCulture के तत्व राज्य: "इस विशेषता का उपयोग इस समय नहीं है" - http://msdn.microsoft.com/en-us/library/hy4kkhe0(v=VS .100) .aspx तो मैं निष्कर्ष निकालूंगा कि वर्तमान में इसका उपयोग किसी भी चीज़ के लिए नहीं किया जा रहा है, जो आपके अनुभव से मेल खाता है। – Joe

+0

हां, जैसा कि आपने देखा, मैं 3 से जुड़ा हुआ हूं।मेरे प्रश्न में उस पृष्ठ का 5 संस्करण और यह पुष्टि करता है कि मैं स्रोत कोड में क्या देख रहा हूं (या नहीं), लेकिन वैश्वीकरण में वर्ग वर्गीकरण में, इस बात का कोई उल्लेख नहीं है कि इस संपत्ति का कोई प्रभाव नहीं होना चाहिए। संपत्ति का उल्लेख विभिन्न ब्लॉग पोस्ट और स्थापना निर्देशों में किया गया है, यही कारण है कि मैं ऐसा करने से पहले कुछ कठिन तथ्यों की तलाश में हूं। इस सेटिंग का उपयोग करने के बारे में मैंने देखा है कि एकमात्र जगह http://www.devexpress.com/Support/Center/p/B150103.aspx है - लेकिन "अप्रचलित" टिप्पणी के अलावा, कोई अन्य विवरण नहीं है। –

7

MSDN कहता है कि enableClientBasedCulture का उपयोग नहीं किया जाता है।

"enableClientBasedCulture - वैकल्पिक विशेषता। इस विशेषता का उपयोग इस समय नहीं किया जा रहा है।"

0

आपको अपना स्वयं का स्वीकार्य-लैंग पहचान लागू करना होगा और आपके द्वारा प्रदान की जाने वाली संस्कृतियों पर स्विच करना होगा।

.NET "ऑटो-जादू" स्विचिंग का समर्थन नहीं करता है।

enableClientBasedCulture कुछ भी नहीं करता है।

ऑटो को संस्कृति की स्थापना करना कुछ भी नहीं करता है। आप देख सकते हैं कि दोनों पर "auto: en" सेट करके और अपनी ब्राउज़र भाषाओं से डैनिश को हटाकर, आप देखेंगे कि यह वैसे भी डिफ़ॉल्ट रूप से डैनिश के लिए डिफ़ॉल्ट होगा।

गुड लक।

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