2010-02-23 4 views
1

C# 3.5에서 다국어 데스크톱 응용 프로그램을 만들어야합니다. 디자인 타임에 레이블에 다국어 텍스트를 추가하는 방법을 알고 있습니다.C#의 다국어 MessageBox

그러나 Messagebox 및 Confirm 대화 상자를 다국어로 작성하는 방법을 찾을 수 없습니까? 선택한 언어를 확인하기 위해 코드에 if/else 조건을 추가해야합니까?

감사합니다.

+0

나는 몬트리올에서 몇 주 전에 MX를 위해 일했다. 창문의 즐거움은 언어가 레이아웃만큼 중요하지 않다는 것입니다. IDE는 프랑스어로되어 있었지만 버튼이 위치를 바꾸지 않았기 때문에 잠시 후에 잘 돌아갈 수있었습니다. 정말로 메시지 상자처럼 사소한 것이 이중 언어 일 필요가 있습니까? –

+2

전체 응용 프로그램이 이중 언어라면, 나는 네, 메시지 상자도 있어야한다고 생각합니다. –

+0

@ 스티브 H. : 글쎄, 아랍어 국가의 사용자 (보통 오른쪽에서 왼쪽으로 레이아웃을 사용하는 사용자)에게 물어보십시오. 또한 메시지 상자는 읽고 이해할 수 있도록 만들어져 있습니다 (사람이 희귀하기는하지만). 사람이 텍스트가 들어있는 언어를 이해하는 것이 중요하며, 영어를 사용하지 않는 사람들이 여전히 있습니다. 미국 사람들은 일반적으로 실패합니다. 미국과 영국이 함께 세계 인구의 10 % 미만이라는 것을 기억하십시오. – dbemerlin

답변

1

리소스를 사용해야합니다. (프로젝트 -> 속성 -> 리소스 탭에서 찾을 수 있습니다.)

리소스 탭을 사용하면 Visual Studio는 Properties 폴더에 Resources.resx 파일을 생성하여 다른 유형의 리소스를 저장할 수 있습니다. (예 : 이미지, 오디오 및 문자열) 현지화 할 수있는 문자열을 추가하고 나중에 Properties.Resources.MyMessageBoxTitle처럼 사용할 수 있습니다.

나중에 다른 언어에 대한 지원을 추가하려는 경우 Resources.resx 파일을 복사하여 Resources.it-it.resx (또는 Resources.fr.resx)과 같은 이름으로 바꿀 수 있습니다. 그러면 자원 관리자가 해당 자원 파일에서 문자열을 자동으로로드합니다. 부모 폼 또는 컨트롤에, 당신이 Language 숙박 시설의 라벨을 변경하고 변경/수 있도록 주위에 컨트롤을 이동할 수 있습니다 다음, true로 설정 Localizable라는 속성이 디자이너에서

+0

프로젝트 레벨과 폼 레벨에서도 리소스 파일을 생성 할 수 있습니다. 양식 리소스 파일에 이러한 리소스 문자열을 추가하면 어떻게 액세스합니까? – Haris

+0

@Haris 일반적으로 디자이너가 자동 생성하고 Form의 'InitializeComponent' 메서드에서만 사용되므로 양식의 리소스를 이러한 방식으로 사용하는 것은 좋지 않습니다. 그 후에는 그들을 얻는 데 이상적으로 좋은 방법이 없습니다. (물론'ComponentResourceManager'의 인스턴스를 직접 생성하는 것 이외에.) 시나리오에 맞는 프로젝트 수준 리소스를 선호하십시오. – Regent

2

캡션 및 메시지 문자열을 리소스로 이동 한 다음 어셈블리에 대한 Properties.Resources 클래스의 자동 생성 속성을 통해 액세스해야합니다.

프로젝트의 기본 리소스 파일은 프로젝트 속성을보고 리소스 탭을 클릭하여 만들 수 있습니다. 프로젝트에 대한 Resources.resx가 아직 없으면 해당 탭에 링크가 만들어집니다. 일단 생성되면 이미지와 문자열과 같은 프로젝트 범위의 리소스를 추가 할 수 있습니다.

1

(Thread.CurrentUICulture 기준) 레이아웃은 해당 지역화에 맞습니다.

이렇게하면 그에 따라 리소스 파일이 만들어집니다.