2012-02-05 3 views
1

나는 을 생각합니다. 나는 그것을 얻을 수 있지만 몇 가지 측면은 나를 혼란스럽게합니다. 독일, 스페인 및 미국에서 MyApp 용 문자열을 현지화하고 싶습니다..net resx 파일 및 현지화

MyApp.resx 
MyApp.de-DE.resx 
MyApp.es-ES.resx 
MyApp.en-US.resx // this *feels* redundant 

마지막 렉스 파일 ("EN") 나는 미국의 개발자입니다 때문에 하나 "중립"과 같은 키와 값을 가지고,하지만 ... 것 두 가지가 모두 필요합니까?

나는 추측 할 수 있지만 궁극적 인 fallback, 인공 위성 및 중립적 인 언어를 설명하는 모든 msdn 문서에도 불구하고 혼란스러워 보입니다.

국제 개발 경험이있는 사람이 왜 또는 왜 간단한 방법으로 설명 할 수 있습니까? WPF, Silverlight, ASP 또는 일부 다른 .Net 변형을 수행하는 경우 중요합니다.

건배,
Berryl 본체 (MyApp.resx)의 자원이 EN-US 문화에있는 경우

+0

당신이 어떻게 가져 왔는지 쉽게 추측하기 힘들다. 보통 로컬라이제이션은 GUI 구성 요소로 수행된다. MyApp.en-GB.resx를 사용하면 여왕에게 색을 말하지 않아도됩니다. 그것을 쓴 사람에게 물어보십시오. –

+0

@ 한자 Passant. 내 파일은 Visual Studio를 통해 생성됩니다. 영국 영어와 다른 미국 영어가 아닌 당신의 요점을 알 수 있습니다. 명확히하십시오. – Berryl

+0

@HansPassant. 나는이 지식에 대답 할 수있는 누구나 내가 en.U를 생략했다는 것을 믿음으로 생각하고 있습니다. 특정 문화적 측면은 질문의 초점이 아닙니다! – Berryl

답변

4

, 당신은 MyApp.en-US.resx 파일을 만들 필요가 없습니다. 이 culture에 대해 위성 어셈블리가 없으면 리소스 관리자는 주 어셈블리의 리소스로 폴백합니다.

0

토마스와 합의. 응용 프로그램의 기본 언어가 en-us보다 많은 경우 주 자원에 모든 문자열을 넣고이 문자열 (독일어, 프랑스어 등)의 모든 번역을 해당 위성 자원 파일에 배치하십시오.

예를 들어 주 언어는 En-Us이지만 영국, 독일어, 스페인어도 지원하고 싶습니다. 따라서 원래의 모든 문자열을 기본 리소스 파일에 배치합니다 (예 : Resources.resx). 그런 다음 Resources.en-GB.resx, Resources.de-De.resx, Resources.es-ES.resx를 만들고 원래 문자열의 번역본을 배치하십시오.

일부 문자열이 미국 및 영국 버전과 동일한 경우이 문자열을 Resources.en-GB.resx 파일에서 삭제하면됩니다. 첫 번째 위성 어셈블리가 리소스에 대해 검사되고 리소스 문자열이 발견되지 않으면이 문자열의 주 어셈블리 버전이 사용됩니다.

관련 문제