중국에 새로운 프로그램을 적용하기 위해 다국어 지원 가능 프로그램을 만들게 되었다.
Visual Basic으로 기존에 사용했을 때는 각 label, button 등에 적용하기 위해 String 배열을 선언해 놓고
선택한 Language에 따라 다른 배열을 적용하도록 했었는데,
신규 프로그램에서는 String을 한 번에 관리하기 쉬운 Resources File을 사용하여 개발해보기로 하였다.
먼저, 새로운 Windows Form App 프로젝트를 생성해준다.
그런다음 프로젝트를 우클릭해서 New item을 추가해준다.
Resources File을 선택해준 후 이름을 입력한다.
지원할 언어의 개수에 따라 Resources File을 생성한다.
영어, 한국어, 중국어 지원을 위해 3개의 Resources File을 생성해보자.
각각의 이름은 Str.resx / Str.ko.resx / Str.zh.resx 로 작성하였다.
영어는 만국 공통어로 Str.resx 이름과 .resx 확장자 사이에 아무것도 안 들어가며,
그 외의 언어는 이름.국가코드(ko, zh).resx 로 선언해준다.
이렇게 총 3개의 Resources File을 생성하면 큰 작업은 끝난다.
Windows Form은 다음과 같이 구성하였다.
Language를 선택할 ComboBox1.
그리고 각각의 Text를 변경할 label1, lable2, button1, textBox1 이렇게 4개를 만들어주었다.
Language 선택에 따라 각 컴포넌트의 Text를 변경해 주기 위해
ComboBox1의 Collection을 설정해주고, SelectedIndexChanged 이벤트를 생성한다.
SelectedIndexChanged 이벤트 함수 내에 다음과 같이 코딩해준다.
CultureInfo를 사용하기 위해서는 반드시
using System.Globalization; 을 추가해줘야 한다.
주요 사용하는 언어들의 CurtureInfo는 다음과 같다.
en-US | 영어(미국) |
ko-KR | 한국어(대한민국) |
zh-CN | 중국어(중국) |
ja-JP | 일본어(일본) |
여기까지 한 후에 프로그램을 실행시키면 ComboBox 선택에 따라 label, button, textbox의 언어가 변경된다.
실행 동영상은 아래에 첨부하였다.
'IT > C#' 카테고리의 다른 글
[C#] 키 입력에 따른 PictureBox Image 분할창 띄우기 (0) | 2020.01.06 |
---|---|
[C#] Unsafe Code 사용하기 (pointer 사용하기) (0) | 2019.11.29 |
[C#] Mouse Event를 통해서 Picturebox 포인트 사이 거리 구하기 (1) | 2019.05.31 |
[C#] Picturebox 위에 Grid 격자 모눈종이 그리기 (0) | 2019.05.29 |
[C#][Database] Mysql Database 연결하기 (0) | 2019.05.27 |