제어판에 언어설정이 아니구요
윈도우 레지스터리 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던..)에 영어/말레이어 등록시키고,
: : : 프로그램 실행 될 때 리소스 한꺼번에 다 읽어 들이고,
: : : 설정에 따라 폼의 모든 컨트롤들의 켑션을 영어/말레이로 바꾸고,
: : : 런타임 메세지도 설정에 따라 영어/말레이어로 표시하는 그런 식일 것으로 예상되는데..
: : : 이 방법이 맞는 지? 상당히 노가다라....
: : :
: : : 좀 효율적인 방법은 ?
: : :
: : : 도와주세요..