|
제가 다국어 버전을 하는 방법을 알려드리겠습니다.
우선 두가지 방법이 있는데 프로그램에 영문과 한글이 모두 들어가 있는 경우입니다.
그러니까 텍스트에 관련된 것은 2차배열로 두어서, FormCreate 이벤트시에 현재 OS의 언어를 판단한후, 해당되는 배열을 불러오는 것이지요.
두번째는 역시 FormCreate이벤트나 폼생성자 이벤트시에 OS의 언어를 판단하여 해당 리소스 DLL(텍스트)을 로드하는 것입니다.
첫번째 방법 :
모든 텍스트를 MSGTXT[2][??] 배열에 넣는다.(한글은 [0][], 영어는 [1][])
int LangID = GetSystemDefaultLangID();
if(LangID == 1042)
LangTxt = 0; // 한국어 : 1042, 영어 : 1033, 일어 : 1041
else LangTxt = 1;
ShowMessage(MSGTXT[LangTxt][1]);
두번째 방법 :
Kor.dll에는 한글 텍스트 배열과 이미지가 있다. Eng.dll에는 영문 텍스트와 이미지가 있다.
int LangID = GetSystemDefaultLangID();
if(LangID == 1042)
DllInstance = LoadLibrary("Kor.dll");
else DllInstance = LoadLibrary("Eng.dll");
텍스트를 LoadStr() 함수를 사용하면 된다.
전 참고적으로 두번째 방법을 선호합니다. 왜냐하면 메모리를 최소화 하기 위해서지요.
그리고, 언어에 해당하는 이미지도 DLL에 넣으면 메모리도 최소화하고, 관리도 편합니다.
물론 소스도 하나이니까 소스관리도 편하겠죠.
그럼 즐프~~~~~~~~~~~~
|