원본 : http://www.debuglab.com/knowledge/multilang.html
1.요약
다국어 버전을 지원하기 위한 한가지 방법을 소개합니다.
2.본문
지금까지 많은 프로그래머들이 다국어 버전을 다양한 방법으로 지원하고자 프로그램을 짜왔는데, 제가 그동안 알아왔던 방법은 아래의 두가지 정도였습니다.
1. 각각의 버전을 따로 만든다.
2. 리소스를 다국어 버전을 포함시켜 만든다.
물론 1번은 완벽히 호환이 되겠지만, 불편한점이 한두가지가 아니구..
2번 역시 프로그램을 만들때 지원하는 언어밖에 지원할 수 없다는 거죠.
또한 사용자가 임의로 리소스를 바꿀 수 있는 권한이 없어집니다.( 이런 부분은 요즘 유행하는 오픈소스 정책과 같다는 생각이 듭니다. ^^;;;)
그럼 랭귀지 팩은??
네.. 간단한합니다. 플러그 인처럼 여러가지 언어로 포맷된 리소스 파일들을 배포하는 거죠. ( 윈도우즈커맨더 , Winamp 는 지원하고 있습니다.)
그럼 어떻게?
우선 처음 프로그램을 설계하실때
예제 에서 처럼 CWinApp 의 OnInitInstance() 에서 랭귀지 팩을 지원할 수 있도록 코딩을 합니다.
그리고 옵션에서 LoadLibrary() 할때 여는 파일을 선택할 수 있도록 해야겠죠.
그럼 KorLang.lng 는 과연 어떤 파일 일까요?
네.. 리소스만 가지구 있는 Dll 파일입니다.
그냥 Dll 파일의 이름을 lng 로 바꾼것이지요..
아직 저도 위의 과정을 사용하여 상용 프로그램을 만들어 보지는 않았지만.
일단 위의 방법을 사용하면 어느정도 다국어 버전 문제가 해결되지 않을까 싶습니다.
3.예제
HINSTANCE hInstanceLanguagePack = LoadLibrary("Lang\\KorLang.lng");
// 위에서 KorLang.lng 는 임의로 사용한 파일 이름입니다.
if (NULL != hInstanceLanguagePack)
// Resource 를 hInstanceLanguagePack 로 부터 읽어들이게 설정합니다.
AfxSetResourceHandle(hInstanceLanguagePack);
- 2001.08.13 Smile Seo -
- VC++에서도 Regular Expression으로 검색할 수 있다 (0)2007/02/23
- 툴바에 Dropdown버튼 넣기 (0)2007/02/23
- 랭귀지 팩을 만들자!! (0)2007/02/23
- 윈도에 포커스가 가지 못하게 하기 (0)2007/02/23
- 메인 프래임 윈도우에 얼굴을 부여하기 (0)2007/02/22

수안이의 컴퓨터 연구실



Leave your greetings.