세티아(Cettear) 클라이언트 

- 실시간 화면 번역 프로그램

 

 

프로그램 : Cettear_Client_20170507.zip

소스 : Cettear_20170507.zip

깃허브 : https://github.com/dang-gun/Cettear

 

상위 프로젝트

- 세티아(Cettear) 프로젝트 - 게임 공동 번역 플랫폼

 

 

 

Author  : Dang-Gun Roleeyas ( http://blog.danggun.net/ )
Create date : 2017.03.14
License  : GPL (GNU General Public License)

 

외부 참조 ( 참조된 코드와 라이브러리는 해당 라이선스를 따릅니다. )

- 키보드 후킹 코드 - A Simple C# Global Low Level Keyboard Hook (CPOL)

 

사용 기술 : C#, visual studio 2015

 

화면을 캡처 하여 구글 비전 API를 이용해 문자를 추출한 뒤 구글 번역 API를 이용하여 번역한 후 번역내용을 화면 위에 표시해주는 프로그램입니다.

프로그램을 사용하려면 구글 클라우드 플랫폼에 가입해야 합니다.

 

구글 클라우드 플랫폼에 가입 방법 링크

구글 클라우드 플랫폼 - 1. 가입하고 프로젝트 생성하기 

구글 클라우드 플랫폼 - 2. 구글 API 사용자 인증 정보 생성하기  - 1번, 2번 생성하시고 2번을 다운로드 합니다.

구글 클라우드 플랫폼 - 3. 구글 비전 API 등록 및 사용 - 1번까지만 하면 등록됩니다.

구글 클라우드 플랫폼 - 4. 구글 번역 API 등록 및 사용 - 1번까지만 하면 등록됩니다.

 

 

원래 세티아 프로젝트를 위해서 만든 프로그램인데 중간에 안 좋은 소리를 좀 들었습니다.

그래서 만들지 않고 있다가 그래도 마무리는 해놓고 중지시켜야 겠다는 생각에 일단 만들던 부분까지만 공개합니다.

 

만들다 만 프로그램이라 버그가 많습니다.

(빠진 기능은 둘째 치고 말이죠 ㅎㅎㅎㅎ)

올해 안에 프로젝트를 다시 진행할 일은......없을 것으로 보입니다.

라이선스가 GPL이니 필요하신 분은 소스 가져다 만드시면 됩니다.

 

이 클라이언트는 기능이 계속 추가된다면 MORT처럼 될 것입니다.

(참고 : MORT - 공식 사이트)

원래 이 프로그램의 목적은 데이터 수집과 출력에 있으므로 기능 추가는 최소화해야 한다는 게 제 생각입니다.

 

1. 주요 기능

- 화면 캡처

- 캡처된 화면에서 문자 추출(구글 비전 API 이용)

- 추출된 문자 번역(구글 번역 API 이용)

- 번역된 문자를 문자가 위치에 출력

 

2. 사용 방법

사용하기 전에 구글 클라우드 플랫폼에 가입하셔야 합니다.

 

실행파일은 'Cettear.exe'입니다.

 

2-1. API 키 설정하기

사용하기 전에 생성한 사용자 인증 정보를 입력해야 합니다.

 

 

 

'1) API' 탭을 누르면 '2) API 키'와 '3) API 키 파일'이 있습니다.

'2) API 키'에 생성한 'API'키를 복사해서 넣습니다.

 

'4) ...'버튼을 눌러 생성하여 다운로드한 '서비스 계정 키'를 지정합니다.

 

2-2. 캡처 범위 지정

화면을 캡처하기 전에 캡처할 범위를 지정해야 합니다.

 

 

 

'1) 리모콘' 탭을 선택합니다.

'2) 캡처 범위 지정'을 누릅니다. (기본 단축키는 F2입니다.)

마우스를 드래그하여 캡처할 범위를 지정한 후 오른쪽 맨 위에 있는 완료 버튼을 눌러 줍니다.

 

 

 

이렇게 하면 캡처할 범위가 지정 됩니다.

 

 

2-3. 번역하기

이제 '4) 캡쳐 & 번역'을 누르면 번역이 됩니다.

 

 

 

그러면 화면에 번역된 결과가 출력됩니다.

 

 

3. 수정 이력

 

2017.05.07.

프로그램 : Cettear_Client_20170507.zip

소스 : Cettear_20170507.zip

 

- 감지언어를 설정할 수 있도록 옵션 추가

- 언어 지정 관련 일부 코드 추가

- 일부 에러 화면에 표시하도록 변경

 

2017.05.06.

프로그램 : Cettear_Client_20170506.zip

소스 : Cettear_20170506.zip

 

- 'API Key'와 '사용자 계정 키'가 없을 때 이상동작 하던 현상 수정

- 'API Key'를 지정하고 프로그램을 껏다켜지 않으면 오류나던 현상 수정

 

2017.05.05

프로그램 : Cettear_Client_20170505.zip

소스 : Cettear_20170505.zip

 

- 캡쳐파일 못찾는 버그 수정(아무개님 감사합니다.)

- 글자 겹처서 출력되던 버그 수정

 

2017.05.02

프로그램 : Cettear_Client_20170502.zip

소스 : Cettear_20170502.zip

 

- 키보드 후킹 코드 패치 추가

- 캡처 경로 수정

 

2017.04.28

프로그램 : Cettear_Client.zip

- 필요기능 일부 구현

 

신고
  1. 아무개 2017.05.04 20:26 신고  Address  Edit/Delete  Reply

    f:\aaa.png 경로의 일부를 찾을 수 없습니다. 라고 뜨면서 실행이 안되네요.

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2017.05.05 01:50 신고  Address  Edit/Delete

      실수로 링크를 예전버전으로 연결해놨네요 ㅎㅎㅎ
      2017.05.02버전으로 링크 바꿨습니다.
      다시 받아 주세요.

    • 아무개 2017.05.05 18:56 신고  Address  Edit/Delete

      똑같은 오류가 나타납니다.

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2017.05.05 20:53 신고  Address  Edit/Delete

      아이고 죄송합니다.
      저번버전에서 수정했는지 알았는데 그대로 있었네요;;
      수정한 버전 새로 올렸습니다.
      확인 부탁드립니다.

    • 아무개 2017.05.05 21:15 신고  Address  Edit/Delete

      경로 오류는 사라졌는데 새로운 오류가 나타났네요

      invalid_grant invalid jwt token must be a short-lived token and in a reasonable timeframe', Uri:''''

      Google.Apis.Auth.OAuth2.Responses.TokenResponseException: Error:"invalid_grant", Description:"Invalid JWT: Token must be a short-lived token and in a reasonable timeframe", Uri:""
      위치: Google.Apis.Requests.ClientServiceRequest`1.Execute() 파일 C:\Apiary\v1.24.1\google-api-dotnet-client\Src\Support\GoogleApis\Apis\Requests\ClientServiceRequest.cs:줄 101
      위치: DGU_GoogleAPI.Vision.Annotate.GetText(String sImgPath) 파일 F:\work\Project_VS\DGUtil\DGU_GoogleAPI\Vision\Annotate.cs:줄 129
      위치: Cettear.frmRemote.Google_OCR() 파일 F:\work\Cettear\project\Cettear\Cettear\frmRemote.cs:줄 145
      위치: Cettear.frmRemote.<StartTranslate>d__7.MoveNext() 파일 F:\work\Cettear\project\

      아래는 로드된 어셈블리목록들..

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2017.05.06 02:54 신고  Address  Edit/Delete

      api키관련해서 나는 에러인가 해서 일부로 에러상황을 만들어봤는데 다른 에러가나서 찾아보니 컴퓨터 시간과 구글서버의 시간이 너무많이 차이나면 발생하는 오류라고 합니다.
      그런데 제가 임의의 시간으로 설정해서 테스트하는데도 제연이 안되고 있습니다;;;

      상황에 따라서 권한이 없는 경우에도 발생한다고 합니다.
      http://blog.danggun.net/4629
      이 글에서 '1번'과 '3번'의 권한을 확인해 주세요.

      api키가 잘못입력된 경우에도 발생할 수 있다고 합니다.
      양쪽끝에 띄어쓰기가 있는지 확인 부탁 드립니다.

      일단 버전업은 해두겠습니다.

    • 아무개 2017.05.06 19:44 신고  Address  Edit/Delete

      생각지도 못했는데
      시간오류였습니다.
      인터넷시계에 들어가서 수동으로 인터넷이랑 동기화하니깐 잘되네요.(고작 몇초 차이였습니다)
      당근님 아니였으면 영원히 몰랐을겁니다.
      감사합니다 잘 쓰겠습니다

    • 아무개 2017.05.06 20:54 신고  Address  Edit/Delete

      그리고 혹시 실례가 안된다면
      http://blog.danggun.net/4621
      이 소스 이용하셔서 제작 하셨다면
      34번째줄에
      ImageContext = new ImageContext() { LanguageHints = new List<string>() { "en" } },

      에서 en 부분을 ja로 바꿔주신 버전을 따로 올려주신다면 너무 감사하겠습니다 ㅠㅠ

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2017.05.07 06:16 신고  Address  Edit/Delete

      일본어 넣어서 테스트 중인데.....
      일본어 인식이 안되고 있습니다;;;
      원인을 찾고 있는데 못찾아도 저녁때쯤 일단 올리도록 하겠습니다.

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2017.05.07 20:59 신고  Address  Edit/Delete

      일본어 감지 추가하였습니다.
      감지 언어를 'ja'로 설정하신 후 '저장'을 눌러 사용하시면 됩니다.

    • 아무개 2017.05.08 22:52 신고  Address  Edit/Delete

      감사합니다 잘 쓰겠습니다

  2. stradi 2017.05.15 11:44 신고  Address  Edit/Delete  Reply

    문장기호가 들어가면 인식이 안되네요. 특히 말줄임표가 들어간 문장은 문장 전체를 인식 못합니다. 구글 ocr의 문제일까요?

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2017.05.15 12:56 신고  Address  Edit/Delete

      기호가 들어간 문장은 기호를 문자로 인식해서 해석이 이상하게 되는 경우가 있긴한데 문장 자체를 인식못하는건 처음보네요.
      혹시 이미지 링크 주실 수 있나요?

  3. 뿡뿡이 2017.06.24 05:59 신고  Address  Edit/Delete  Reply

    저 혹시 중국어는 안되나요..? 중국어 번체로 zh_tw 설정해서 썼는데

    한자가 감지되다 안되다 하고ㅜㅜ심지어 감지된건 번역도 안되네요..(한글 자체가 안떠요 흑) 번역이라도 되면 좋은데..

    혹시 무슨 문제가 있거나 다른 방법이 있을까 해서 댓글드려봅니다 ㅜ_ㅜ

  4. 뿡뿡이 2017.06.25 04:35 신고  Address  Edit/Delete  Reply

    http://imgdb.kr/bTez

    이런식으로 뜹니당 ㅜㅜㅜ 심지어 저 한자도 인식이 엄청 잘 안돼서 애썼어요.. 다른한자는 인식도 안되구 ㅜㅜ.. 번역이 안나오는건 무슨문제인가요..?흑

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2017.06.25 12:59 신고  Address  Edit/Delete

      프로그램상에서 재대로 읽히질않습니다.

      https://cloud.google.com/vision/
      여기서 구글 api로 해당 이미지 체크가 어떻게 되고 있는지 확인 할 수 있는데....
      결과가 안좋네요;;;

      몇가지 테스트하고 싶은데 시간이 없어서 당장은 힘들것 같고 쇼셜댓글에 이미지첨부 기능이 있으니 몇장만 더 붙여주시길 바랍니다.

  5. 클로 2017.07.19 01:53 신고  Address  Edit/Delete  Reply

    http://imgdb.kr/c1Jy

    F4를 누르면 이런 오류가 뜹니다. 뭐가 잘못된 건가요?

  6. 클로 2017.07.19 12:58 신고  Address  Edit/Delete  Reply

    네 둘 다 지정한 상태인데 그렇습니다.

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2017.07.19 14:52 신고  Address  Edit/Delete

      해당 에러는 인증키파일이 손상되었을때 발생하는 오류입니다.
      메시지로만 봐서는 파일을 읽을 수 없거나 지정하지 않은거 같은데....
      키를 다시 생성해 보시거나 다른 형식으로 생성해 보시길 바랍니다.

      확인하는데로 설명을 갱신하도록 하겠습니다.

  7. 클로 2017.07.19 15:33 신고  Address  Edit/Delete  Reply

    api와 api파일 만드는 법을 다시 알려주실 수 없을까요? 그게 꼬인 거 같네요.

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2017.07.20 00:25 신고  Address  Edit/Delete

      http://blog.danggun.net/4629
      이글에서 1번, 2번 생성하시고 2번을 다운로드 합니다.
      2번에서 받은 파일을 지정해 줍니다.

  8. 클로 2017.07.20 12:48 신고  Address  Edit/Delete  Reply

    다시 해 봤지만 여전히 작동이 안 되네요.

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2017.07.21 09:00 신고  Address  Edit/Delete

      해당 키파일로 테스틀 해보고 싶지만
      민감한 정보가 들어있는 대다 api설정이 어떻게 되있는지 확인도 해야되서 어떻게 처리해야할지 고민좀 해봐야 할것 같습니다.

  9. 클로 2017.07.22 18:51 신고  Address  Edit/Delete  Reply

    어떻하면 좋을까요?

    • Favicon of http://blog.danggun.net BlogIcon 당근천국 2017.07.24 09:25 신고  Address  Edit/Delete

      가장 좋은 방법은 해당파일을 저한테 보내주는 겁니다.
      비밀덧글로 이메일주소 알려주시면 전송할 주소 알려드리겠습니다.

  10. 2017.07.24 21:45  Address  Edit/Delete  Reply

    비밀댓글입니다

댓글 작성

이름
패스워드
홈페이지
비밀글

티스토리 툴바