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
[70000] Translation Manager 다국어 질문
곰탱이 [] 2408 읽음    2013-08-16 21:02
장성호 님과 땅주인님의 도움을 받아,  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 파일을 읽어 들이려면 어떻게 해야 하는지 좀 알려 주시기 바랍니다.

부탁 좀 드리겠습니다.

읽어 주셔서 감사 합니다.

+ -

관련 글 리스트
70000 Translation Manager 다국어 질문 곰탱이 2408 2013/08/16
70002     Re:Translation Manager 다국어 질문 땅주인 2566 2013/08/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.