퇴근5분전


  멀티 랭귀지 지원에 대해 글을 한번 싸질러본다.

몇가지 글을 찾아보았는데... 영문에 장수도 만만치 않다.

따라해도 뭐가 빠졌는지 잘 안된다...

 따라하기를 포기하고 그냥 내방식대로 코드 노가다와 감으로 짜보니 되더라...


1. 새 프로젝트를 생성한다. ( 응용프로그램 : Form )
2. 프로젝트내에 기본으로 있는 Resources.resx 에  [이름)Name / 값)Name] 을 추가해준다. ( 영문명 )
3. 새 항목 추가로 리소스를 추가한다. 이때 이름은 Resources.ko-kr.resx 이다. ( 한글명 )
동일한 Key로 써야 하니까 [이름)Name / 값) 이름] 이라고 추가한다.
4. 폼에 버튼 하나를 놓아둔다.
5. Form 소스에서 버튼.Text 에 Name을 할당해보자.
---- 소스 --------------------------------------------------------------------------------------

 button1.Text = Demo_MultiLanguage.Properties.Resources.Name;

요렇게.... 넣으면 기본 리소스 이용으로 영문으로 "Name" 이  나온다.
Name으로 나오게 된다.

한글로 안나오는 이유를 보면..
Demo_MultiLanguage.Properties.Resources.Culture  요 값이 null 값으로

null이면 기본 리소스 값을 가져오는 듯 하다.

6. 이제 한글이 되도록 바꿔보자.
---- 소스 --------------------------------------------------------------------------------------

 Demo_MultiLanguage.Properties.Resources.Culture = new System.Globalization.CultureInfo("ko-kr");
 button1.Text = Demo_MultiLanguage.Properties.Resources.Name;

요러면... 버튼에 "이름" 이라고 표시된다.


## 중요 참고 사항 ###############################################################################

1. 새로 만든 리소스 파일명에 주의 한다.
Resources.resx
Resources.ko-kr.resx

2. 파일 위치를 잘 맞춘다.


끝!!!


--- 추가 내용 (잘못된 정보다)----------------------------------
{  // 또 실수할까봐... 남겨둔다.
all in one code framework 의 샘플들을 훑어보던 중 쇼킹..

Form아래 resx파일을 추가해두고
해당 resx에서  [이름)컨트롤명.프로퍼티 / 값) 값]  요거 하나로 끝나는걸 봤다.

코드를 넣을필요도 없네??? 멋지다.
}
>> 잘못된 정보다!!! 위!!


잘못된 정보대로 하니 안된다... 저걸로 하는게 아니고

의외로 간단하게 된다.

Form에 localizable 프로퍼티를 디자이너 에서 true 시켜놓고 디자인 작업을 하면 
자동으로 생성이 되네? -> resx에...
다음 그냥 디자이너에서 속성창에서 Text수정하면 자동으로 resx를 만들어 저장한다.

정리하면

그냥 로컬라이즈 = true 걸어놓고
언어 선택 후
디자이너에서 컨트롤 프로퍼티를 조정하면 알아서 저장된다 ㅡ.,ㅡ;;






'# 4) .Net ( Vs 2010 ) > C#' 카테고리의 다른 글

2010 WinForm ] 컨트롤 리사이징 예제...  (0) 2012.07.20
.Net] 버튼 Pressed Event!!  (0) 2012.05.09
ArrayList.Sort 하기...  (4) 2011.07.29
[IPC] Event 추가 ~~  (0) 2011.05.14
LINQ] 로또 구하기?  (1) 2011.04.25