IT/C#

[C#] CultureInfo와 Resources File을 사용하여 Multi Language 다국어 지원하기

Ella.J 2019. 6. 5. 17:25
728x90
반응형

중국에 새로운 프로그램을 적용하기 위해 다국어 지원 가능 프로그램을 만들게 되었다.

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 로 선언해준다.

Str.resx
Str.ko.resx
Str.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의 언어가 변경된다.

 

실행 동영상은 아래에 첨부하였다.

 

728x90
반응형