2009-09-22 3 views
1

현재 양식 현지화 작업을하고 있습니다. 그러나 나는 이것을 어떻게 제대로하는지에 대해 다소 혼란 스럽다.디자이너에서 문화권을 변경할 때 지역화 된 리소스 파일이 자동으로 만들어지지 않는 이유는 무엇입니까?

컨트롤 속성을 리소스 파일로 자동으로 내보낼 수 있다고 생각했지만 수동 작업 인 것 같습니다.

현재로서는 String 유형이고 리소스 파일에 쓸 수있는 모든 컨트롤 속성을 추가하는 방법이 있습니다. 이것은 폼의 모든 컨트롤과 자식 컨트롤을 재귀 적으로 열거하고 속성을 반영하여 수행됩니다.

하지만 다소 복잡해 보이며 다른 사람들이 어떻게하는지 궁금합니다.

내 질문 : 제어 텍스트 현지화를위한 리소스 파일 사용과 관련하여 가장 좋은 방법은 무엇입니까?

편집 : 내가 뭘 잘못하고 있는지 알 겠어. 나는 Displaytext가 각 리소스 파일에 자동으로 복사 될 것이라고 생각했다. 그러나 변경된 필드 만 복사됩니다.

기본적으로 언어를 특정 설정으로 지정하고 모든 컨트롤의 DisplayText를 변경하며 언어를 기본값 (기본값)으로 변경하면 변경된 내용이 저장됩니다.

모든 의견을 주셔서 감사합니다.

답변

3

사실 양식을 현지화하는 것은 그렇게 어렵지 않습니다. "Localizable"속성을 "true"로 설정합니다. 이로 인해 양식의 컨트롤의 모든 지역화 가능 속성이 리소스 파일로 마이그레이션됩니다. 현재 자원 파일은 로케일 독립적 인 자원 파일입니다. 그런 다음 양식의 속성에서 다른 언어를 선택하고 모든 컨트롤 캡션과 텍스트를 번역 된 변형으로 대체 할 수 있습니다. 이로 인해 적절한 로케일 종속 리소스 파일이 만들어져 사용됩니다.

Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-GB"); 
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-GB"); 

인터페이스는 그에 따라 적응 줘야 :

당신은 인터페이스는 Thread.currentThread에 CurrentCulture 및 CurrentUICulture 속성을 설정하여 표시되는 언어를 선택할 수 있습니다.

+0

모든 컨트롤 캡션을 번역본으로 바꾸는 것이 트릭을 만들었습니다. 감사합니다! –

1

이것은 이미 수행합니다.

Form 또는 UserControl 디자이너에서 지역화를 켭니다.

이제 언어를 변경하고 (디자이너도) 적절한 langXXX.resx가 자동으로 만들어집니다.

+0

내가 읽은 모든 것에서이 방법을 사용하는 것처럼 보였지만 내 컨트롤의 Text 속성은 Resource 파일의 아무 곳에 나 나타나지 않았습니다. –

+0

사용자 지정 컨트롤을 직접 만드는 경우 지역화가 필요한 속성 (예 : 표시 텍스트, 아이콘 등)에 대해 Localizable 특성을 설정해야합니다. 이렇게하려면 속성 선언 위에'[Localizable (true)] '을 넣으면됩니다. – Joey

+0

알 겠지만 레이블, 버튼, 라디오 버튼, 그룹 박스 같은 표준 컨트롤조차도 리소스 파일에 나타나지 않습니다. 어쩌면 내가 뭔가 잘못하고있는 것 같아. –

1

로컬화할 수있는 양식 만 만들면됩니다 (속성 패널에서 Localizable을 true로 설정하면됩니다). 그런 다음 지역화 할 언어를 선택하기 만하면됩니다. 필요한 모든 리소스 파일이 자동으로 생성됩니다.