C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[50790] Re:Re:Re:[질문] Translation Manager의 다국어 지원...
장성호 [nasilso] 1682 읽음    2007-10-09 19:43
제어판에 언어설정이 아니구요

윈도우 레지스터리 Software\\Borland\\Locales 에 설정을 그냥 바꿔주는것입니다.

아래 함수로  지역 설정을 변경할수 있습니다.
void SetLocalOverrides(char* FileName,char* LocaleOverride)
{
    HKEY Key;
    const char* LocaleOverrideKey="Software\\Borland\\Locales";
    if( RegOpenKeyEx(HKEY_CURRENT_USER,LocaleOverrideKey,0,KEY_ALL_ACCESS,&Key)== ERROR_SUCCESS )
    {
        if(lstrlen(LocaleOverride)==3)
            RegSetValueEx(Key,FileName,0,REG_SZ,(const BYTE*)LocaleOverride,4);
        RegCloseKey(Key);
    }
}
//---------------------------------------------------------------------------

사용예
void __fastcall TForm1::Button1Click(TObject *Sender)
{
     SetLocalOverrides((Application->ExeName).c_str(),"KOR"); //한글로 설정
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
      SetLocalOverrides((Application->ExeName).c_str(),"ENU");  //영어로 설정
}


그런데 위와같이 변경하면 프로그램을 재시작해야 적용됩니다.

프로그램을 재시작하지 않고 run-time에 하는 방법도 있는 걸로 알고 있는데...
LoadNewResourceModule , ReinitializeForms 로 google에서 검색해보세요


저도 Resource Dll Wizard를 사용해본지 너무 오래 되어서 기억이 가물가물 합니다.
프로그램을 재시작하지 않고 run-time에 바로 변경하는것은 해보지 않은 기능이구요

더 자세한것은 다른분들께..

그럼..



땅주인 님이 쓰신 글 :
: 답변 감사합니다.
: 그런데, 언어설정만 하면 된다고 하셨는데..제어판에서 언어 설정하는 걸 의미하나요?
: (어쨌거나 영어로 컴파일한 건 영어버젼, 한국어로 컴파일하면 한국어 버젼인 거죠? )
:
: 제가 해야 할 것은..
: 운영체재의 언어설정이나 이런 것에 상관없이....
: 가령 프로그램이 사용하는 레지스트리에다가 영어 또는 말레이어로 설정해 놓고,
: 동일한 프로그램으로 영어 또는 말레이어로 사용하는 것을 원하는 것입니다.
:
: 동일한 프로그램이 설정(레지스트리 또는 ini file)에 따라 영어 /한국어 등으로
: 표현되어야 한다는 것입니다.
:
: 그냥 레지스트리 밖에 없는건가?
:
: 장성호 님이 쓰신 글 :
: : 오래되서 잘 기억이 나지 않는데요..
: :
: : 메뉴의 File->New에 보면 Resource Dll Wizard라는 것이 있습니다.
: :
: :
: : 이걸로 만들면 언어 설정만 하면 Design - Time에 결정 Caption들은 다 자동으로 가능합니다.
: : 문론 Resurece Dll 만들때  영어 , 한국어 각 언어에 해당하는 string 리소스를 다 만들어 줘야하죠
: :
: : 안되는것도 있습니다.
: : 코딩에서 직접 string을 입력되어있는것은 안됩니다.
: :
: : 개인적으로  코딩에 있는 string은  ini 파일을 이용했습니다.
: :
: : 그럼..
: :
: :
: : 땅주인 님이 쓰신 글 :
: : : 다국어 지원 프로그램을 제작해야 하는데..
: : : 이리저리 뒤져서 Translation Manager를 찾아냈는데요..
: : :
: : : 한가지 의문,
: : :
: : : 해당 언어로 Compile하면 땡인거 아닌가요?
: : : Build한 프로그램 자체가 한글버젼, 영어버젼,일본어 버젼 이렇게 되는 것이지요?
: : :
: : : 제가 필요한 것은 하나의 빌드에서 한글/영어가 동시에 지원되어야 하는데요..
: : : 레지스트리나 기타 설정에서 이 프로그램을 한글로 쓰겠다고 하면 한글로 지원,
: : : 영문으로 쓰겠다면 영문으로 지원하는 기능입니다.
: : :
: : : 말레이지아가 대상 국가인데.. 영어와 말레이어를 공통으로 쓰는데..
: : : 웬만한 사람들은 영어와 말레이어를 같이 쓸 줄 알더군요. O/S도 영문을 쓰고요..
: : :
: : : 그래서, 하나의 빌드가지고 설정에 따라 말레이/영어로 전환하는 기능이
: : : 필요합니다.
: : :
: : : 어떻게 해야 하나요?
: : :
: : : 리소스 파일(텍스트 파일이건, MDB던..)에 영어/말레이어 등록시키고,
: : : 프로그램 실행 될 때 리소스 한꺼번에 다 읽어 들이고,
: : : 설정에 따라 폼의 모든 컨트롤들의 켑션을 영어/말레이로 바꾸고,
: : : 런타임 메세지도 설정에 따라 영어/말레이어로 표시하는 그런 식일 것으로 예상되는데..
: : : 이 방법이 맞는 지? 상당히 노가다라....
: : :
: : : 좀 효율적인 방법은 ?
: : :
: : : 도와주세요..

+ -

관련 글 리스트
50786 [질문] Translation Manager의 다국어 지원... 땅주인 1214 2007/10/09
50788     Re:[질문] Translation Manager의 다국어 지원... 장성호 1339 2007/10/09
50789         Re:Re:[질문] Translation Manager의 다국어 지원... 땅주인 1785 2007/10/09
50790             Re:Re:Re:[질문] Translation Manager의 다국어 지원... 장성호 1682 2007/10/09
50791                 Re:Re:Re:Re:[질문] Translation Manager의 다국어 지원... 땅주인 1360 2007/10/09
50795                     Re:Re:Re:Re:Re:[질문] Translation Manager의 다국어 지원... 장성호 1438 2007/10/10
50799                         Re:Re:Re:Re:Re:Re:감사합니다.(냉무) 땅주인 1240 2007/10/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.