|
장성호 님과 땅주인님의 도움을 받아, Resource DLL Wizard 이용 하여, 다국어 버젼을 만들었습니다.
폼 갯수가 작을 때는 동적으로 불러 들이는데 문제가 없어서 아래와 같이 작업을 하였으나,
const ENGLISH = (SUBLANG_ENGLISH_US << 10) | LANG_ENGLISH;
if (LoadNewResourceModule(ENGLISH))
{
ReinitializeForms();
}
폼 갯수가 많아 지고, componet 를 사용 하면서, 제어 해야 할 것이 많아 지다 보니, 장성호님이 사용 하신 것 처럼 아래와 같이
사용 하기로 했습니다.
void SetLocalOverrides(char* FileName, char* LocaleOverride) {
HKEY Key;
const char* LocaleOverrideKey = "Software\\Embarcadero\\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);
}
}
위와 같이 사용 하여 프로젝트를 완성 하였는데, 문제는 배포시 문제 입니다.
영문 OS 에서는 영어만 나오고, 국문 OS 에서는 국문만 나오고, 중문 OS 에서는 중문만 나옵니다.
실제 사용자 컴퓨터에는 위와 같은 path 가 없기 때문에, Registry Path 를 바꿔서 처리 해도 마찬가지 결과가
나옵니다.
Embarcadero 가 설치된 컴퓨터 처럼 OS 에서 상관 없이 사용자가 설정 한 ***.dll 파일을 읽어 들이려면 어떻게 해야 하는지 좀 알려 주시기 바랍니다.
부탁 좀 드리겠습니다.
읽어 주셔서 감사 합니다.
|