2012-01-16 1 views
18

, 나는 속성의 다음과 같은 조합이 세계화 섹션에서 사용되는 경우 충분히보고하고있다 : 예를 들어, uiCulture가 = "자동"문화 = "자동", enableClientBasedCulture = "true"로 :Web.config의 enableClientBasedCulture 특성이 전혀 작동합니까? 웹 검색

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

문서는 말한다 :

EnableClientBasedCulture 속성을 사용할 수있을 http://msdn.microsoft.com/en-us/library/system.web.configuration.globalizationsection.enableclientbasedculture(v=VS.90).aspx, 문화 및 UICulture 속성이 acceptlanguage가 헤더 필드에 클라이언트 브라우저에서 보낸 값을 기반으로합니다. AcceptLanguage 헤더 값을 특정 culture에 매핑 할 수 없으면 Culture 및 UICulture 값이 사용됩니다. 기본값은 false입니다. 문화에 대한

및 uiCulture 속성은, "자동차"는 ASP.NET이 현재 브라우저에 지정된 첫 번째 언어 에 UI 문화와 문화를 설정하기 http://msdn.microsoft.com/en-us/library/bz9tc508(v=VS.90).aspx

뜻한다 설정에서 UICulture 및 문화권을 자동으로 설정합니다. 또는이 값을 auto : culture_info_name으로 설정할 수 있습니다. 여기서 culture_info_name은 culture 이름입니다. 에 문화권 이름 목록은 CultureInfo를 참조하십시오. 이 설정은 @ Page 지시문이나 Web.config 파일에서 으로 설정할 수 있습니다.

브라우저가 AcceptLanguage 헤더 필드 값에 올바르지 않거나 문화권 이름을 보내지 않는다고 가정하십시오. enableClientBasedCulture = "true"이므로 응용 프로그램 서버는 AcceptLanguage 헤더 필드에있는 것을 사용하려고 시도하지만 잘못된 문화권 이름을 사용하면 culture 이름이 "auto"이고 uiCulture = "auto "자동/자동 설정 자체가 유효하지 않은 데이터를 사용하지 못합니다.

이제 서버에 올바른 문화권 이름 (예 : "de-DE". enableClientBasedCulture = "true"이므로 AcceptLanguage 헤더 필드 값을 사용하도록 응용 프로그램 서버에 지시하지만 culture 및 uiCulture는 "auto"로 설정되므로 어쨌든 해당 값을 사용하게됩니다.

내 첫 번째 질문은입니다. 자동/자동을 true로 결합하는 요점은 무엇입니까? 내 생각에 culture = "auto"이고 uiCulture = "auto"인 경우 enableClientBasedCulture = "true"를 사용하면 중복됩니다. 내 자신의 테스트는 auto/auto가 enableClientBasedCulture 속성과 결합 될 때와 마찬가지로 혼자서도 작동한다는 것을 보여주었습니다. 그러나 웹의 많은 예제에서 제안 된 auto/auto/true 조합을 볼 때마다 뭔가를 간과했다.

자동/자동 설정없이 enableClientBasedCulture = "true"를 사용해 보았습니다.

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

이것은 전혀 작동하지 않습니다. enableClientBasedCulture = "true"가 AcceptLanguage 헤더 필드 값의 속성으로 설정하는 것을 (묵시적으로) 처리한다고해도 클라이언트에 서버의 culture 및 uiCulture 설정이 강제로 제공되는 것으로 보입니다.

그런 다음 culture와 uiCulture에 대한 특정 문화권 (예 : .com)과 enableClientBasedCulture를 결합 해 보았습니다.

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

이 경우 클라이언트 브라우저는 언어 설정에 관계없이 "da-DK"를 사용해야합니다.

http://msdn.microsoft.com/en-us/library/hy4kkhe0(v=VS.90).aspx 보면서 나는 enableClientBasedCulture이를 참조하십시오

이 속성은 현재 사용되지 않습니다.

.NET Reflector를 사용하여 모든 .NET 3.5 Framework 어셈블리를 디 컴파일하고 enabledClientBasedCulture를 검색했습니다. System.Web.Configuration \ GlobalizationSection에 값을 읽고 속성을 통해 사용할 수있게하는 코드가 있지만 아무것도 사용하지 않습니다.

Hosting \ HostingEnvironment에서 GlobalizationSection 매개 변수에서 culture 및 uiCulture 값을 가져 오는 SetCultures라는 메서드를 찾았지만 아직 enableClientBasedCulture 특성을 사용하는 코드를 찾지 못했습니다.

내 두 번째 질문은입니다. enableClientBasedCulture 특성이 실제로 어디에서나 사용되고 있는지, 그렇다면 테스트 프로그램을 구성하여 어떻게 효과가 있는지 어떻게 증명해야합니까?

답변

5

당신은 시도 할 수 있습니다 :

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

나는이 처음 acceptlanguage가 헤더에서 문화를 사용하는 것으로 판단되는 경우 지정된 기본값으로 사용할 수, 다른 대체.

+1

예, 질문은 1) auto/auto/true 값으로 세 속성을 모두 포함시키는 목적은 무엇이며, 2) enableClientBasedCulture 속성은 아무 것도 사용중인 것입니다. 예제에는 enableClientBasedCulture 속성 사용 예제가 포함되어 있지 않습니다. –

+1

@Joergen : 세계화> enableClientBasedCulture의 요소 상태에 대한 설명서 : "이 특성은 현재 사용되지 않습니다."- http://msdn.microsoft.com/en-us/library/hy4kkhe0(v=VS) .100) .aspx 그래서 나는 현재 귀하의 경험과 일치하는 것으로 보이는 것은 아무것도 사용하지 않는다고 결론을 내릴 것입니다. – Joe

+0

예, 내가 보았 듯이 3에 연결되었습니다.5 버전의 내 질문에 그 페이지의 소스 코드에서 볼 수 있지만 (또는 아닙니다) 확인합니다 있지만 GlobalizationSection 클래스 설명서에서이 속성을 영향을주지 않아야 언급이 없습니다. 이 속성은 다양한 블로그 게시물 및 설치 지침에 언급되어 있습니다. 따라서 동일한 작업을 수행하기 전에 몇 가지 중요한 사실을 찾고 있습니다. 본인이이 설정을 사용하는 것에 대해 마음을 바꾼 유일한 장소는 http://www.devexpress.com/Support/Center/p/B150103.aspx입니다.하지만 "더 이상 사용되지 않는"발언 이외의 다른 세부 사항은 없습니다. –

7

MSDNenableClientBasedCulture이 사용되지 않는다고 말합니다.

"enableClientBasedCulture - 선택적 특성.이 특성은 현재 사용되지 않습니다."

0

독자적인 Accept-Lang 감지 기능을 구현하고 적절하게 제공하는 문화권으로 전환해야합니다.

.NET은 "자동 마법"전환을 지원하지 않습니다.

enableClientBasedCulture는 아무 것도하지 않습니다.

culture를 auto로 설정해도 아무 것도 수행하지 않습니다. 두 언어 모두에서 "자동 : en"을 설정하고 브라우저 언어에서 danish를 제거하면 어쨌든 덴마크어로 기본 설정됨을 알 수 있습니다.

행운을 비네.