본문 바로가기

쓰기

* 본 문서는 MultiPlugin 2 에서부터 지원하는 필터 플러그인 추가규격을 설명한 문서입니다.
   본 규격은 아랄트랜스 0.2의 기본 규격은 아니지만 기본 규격의 확장판 정도로 생각하면 되겠습니다.
   아랄트랜스 0.2의 플러그인 규격은 http://aralgood.com/zbxe/23098 에서 참조하실 수 있습니다.
(2008.10.12 추가)
* 2008.10.08 아랄트랜스 업데이트로 본 규격은 아랄트랜스 정식 규격의 일부로 편입되었습니다.
1. 폴더

필터 플러그인은 아랄트랜스 설치폴더 내 Filter  폴더에 설치되어야 합니다.


2. DLL 함수 익스포트(Export) 규격

먼저, 필터는 다음과 같은 아랄트랜스 0.2 의 기본 플러그인 함수를 익스포트 하고 있어야 합니다.

BOOL __stdcall OnPluginInit(HWND hSettingWnd, LPSTR cszSettingStringBuffer)

BOOL __stdcall OnPluginOption()

BOOL __stdcall OnPluginClose()

그리고, 필터 플러그인만의 다음과 같은 추가 함수를 익스포트 하여야 합니다.

BOOL __stdcall PreTranslate(LPCSTR cszInJapanese, LPSTR szOutJapanese, int nBufSize)
BOOL __stdcall PostTranslate(LPCSTR cszInKorean, LPSTR szOutKorean, int nBufSize)


3. 익스포트 함수 설명

아랄트랜스 0.2의 기본 플러그인 함수에 대한 설명은 아랄트랜스 0.2 플러그인 규격을 참조하세요.

a. PreTranslate
PreTranslate는 실제 번역이 시작되기 전에 전처리를 할 때 발생합니다.
인자는 다음과 같습니다.
   - LPCSTR cszInJapanese : 번역 전 일본어 원문입니다.
   - LPSTR szOutJapanese : 필터링 이후 문장을 출력하는 버퍼입니다.
   - int nBufSize : szOutJapanese 버퍼의 크기입니다.

리턴값은 다음과 같습니다.
  - TRUE : 필터링이 성공하였음을 뜻합니다. 실제 원문을 그대로 돌려주는 경우에라도 TRUE 를 넘겨주어야 합니다.
  - FALSE : 필터링이 실패하였음을 뜻합니다. FALSE 가 리턴되면 MultiPlugin 은 전체 필터-번역 플러그인 체인이 실패한 것으로 간주하고 아랄트랜스 측에 "번역 실패" 를 리턴합니다.

주의점은 다음과 같습니다.
  - 원문을 굳이 필터링하지 않더라도 최소한 원문을 버퍼에 복사해주고 TRUE 를 리턴해주어야 번역이 제대로 실행됩니다.

b. PostTranslate

PostTranslate는 실제 번역이 끝나고 후처리를 할 때 발생합니다.
인자는 다음과 같습니다.
   - LPCSTR cszInKorean: 번역된 한국어 원문입니다.
   - LPSTR szOutKorean : 필터링 이후 문장을 출력하는 버퍼입니다.
   - int nBufSize : szOutKorean 버퍼의 크기입니다.

리턴값은 다음과 같습니다.
  - TRUE : 필터링이 성공하였음을 뜻합니다. 실제 원문을 그대로 돌려주는 경우에라도 TRUE 를 넘겨주어야 합니다.
  - FALSE : 필터링이 실패하였음을 뜻합니다. FALSE 가 리턴되면 MultiPlugin 은 전체 필터-번역 플러그인 체인이 실패한 것으로 간주하고 아랄트랜스 측에 "번역 실패" 를 리턴합니다.

주의점은 다음과 같습니다.
  - 원문을 굳이 필터링하지 않더라도 최소한 원문을 버퍼에 복사해주고 TRUE 를 리턴해주어야 번역이 제대로 실행됩니다.

4. 함수 예

BOOL  __stdcall PreTranslate(LPCSTR cszInJapanese, LPSTR szOutJapanese, int nBufSize)
{
    // TODO: 번역 전처리를 한다.
    if (RemoveSpace(cszInJapanese, szOutJapanese, nBufSize) == TRUE)
        return TRUE; 
    // 작업 성공시 TRUE, 실패시 FALSE 반환
    return FALSE;
}
BOOL  __stdcall PostTranslate(LPCSTR cszInKorean, LPSTR szOutKorean, int nBufSize)
{
    // TODO: 번역 후처리를 한다.
    // 특별한 처리를 하지 않더라도 문자열을 복사해 돌려주어야 한다.
    lstrcpyA(szOutKorean, cszInKorean);
 
    // 작업 성공시 TRUE, 실패시 FALSE 반환
    return TRUE;
}

 

조회 수 :
9380
등록일 :
2008.07.26
16:49:41
엮인글 :
https://arallab.hided.net/4367/533/trackback
게시글 주소 :
https://arallab.hided.net/board_documents/4367
List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 [SVN] AralTrans 0.3 - All Plugins [6] 아랄 2009-10-23 10352
공지 [SVN] AralTrans 0.2 - Full Source [2] 아랄 2008-07-22 16062
12 AralTrans v0.3 Renewal Project [1] file 아랄 2011-04-17 5910
11 [0.2] OnPluginInit에서 MessageBox 출력시 주의! Hide_D 2009-12-11 6814
10 STL iterator 사용시 주의사항 [1] 아랄 2009-10-04 7564
9 한 함수에 후킹 포인트를 2개 이상 잡을 수 없습니다. [3] Hide_D 2009-07-20 7702
8 [부정확] 플러그인에 쓰레드를 사용할때 [2] Hide_D 2009-01-07 7456
7 아랄 컨테이너 창이 hidden상태일 수 있으므로 MessageBox 주의! [2] 아랄 2008-11-07 7263
6 파일 다이얼로그를 띄운 후 작업폴더가 바뀌는 현상 [3] 아랄 2008-10-28 7773
5 [소스] 플러그인 개발을 위한 기본 프레임워크 20080810 file whoami 2008-08-10 8614
» [문서] MultiPlugin 2 - 필터 플러그인 규격 file whoami 2008-07-26 9380
3 [개발환경구축] AralTrans 프로젝트 소스 다운받기 [3] file 아랄 2008-07-24 8171
2 [개발환경구축] TortoiseSVN 설치하기 file 아랄 2008-07-24 7708
1 [문서] 아랄트랜스 0.2 - 플러그인 규격 [5] file 아랄 2008-06-22 9934