안녕하세요. 오토핫키 자동번역기를 만들어보려는데요. 번역때마다 파파고나 구글 번역 들어가서 타이핑하는 것이 번거로웠던 분이라면 많은 도움이 되실겁니다. 유료로 나와있는 번역기들이 많지만 유료란 것이 단점이며 그또한 프로그램 사용을 위해 웹페이에 접속하거나 프로그램 인터페이스를 사용해야 하기에 나에게 가장 편한 프로그램이다 라고 말하기는 어려울 것 같습니다. 지금 설명드리는 부분을 잘 따라하신다면 내가 쓰기 편리한 단축키 그리고 편리한 로직을 적용해서 세상에서 가장 편한 번역기가 만들어 질 수 있습니다.
코딩도구로 오토핫키를 사용하는데요. 아래 사이트 접속하셔서 다운로드 받으시고 설치해주세요. 10초면 됩니다.
오토핫키는 소스를 메모장에서 수정할 수도 있지만 아무래도 보기에 불편하고 코드 오타가 나도 눈으로 잡아내기가 어려운 점이 있습니다. 그래서 편집기를 사용하시는걸 추천합니다. 아래 싸이트에서 설치해주세요.
https://www.autohotkey.com/scite4ahk/
설치하시고 프로그램 업데이트 하겠냐고 물어보는 팝업창이 뜰텐데요. 예 눌러서 업데이트 진행하시면 됩니다. 처음 실행하고 반드시 셋팅할 것이 하나 있는데요. 한글이 깨져보이기 때문에 Tools - SciTe4Autohotkey settings 들어가셔서 File codepage를 Korean Wangsung으로 바꾸시고 update를 눌러주세요. (참고로 Edit style 들어가시면 폰트와 폰트사이즈, 배경색상 등을 셋팅하실 수 있습니다.)
제가 만든 소스들을 설명드리려고 하는데요.
(전체소스는 상단 유튜브 채널에 댓글로 이메일 주소 남겨주시면 보내드리겠습니다.)
작성한 코드중에 중요한 부분만 설명드리겠습니다.
먼저 가장 상단에 보이시는
#SingleInstance Force
#NoEnv
Process, Priority,, High
#Include JSONParser.ahk
if not A_IsAdmin
{
Run *RunAs "%A_ScriptFullPath%"
ExitApp
}
이부분은 쉽게 말해 실행하는데 필요한 필수 혹은 편의 옵션 정도로 이해해주시면 될 것 같아요. 프로그램이 중복실행되지 않도록 하거나 윈10에서 관리자권한 실행을 못하여 막히는 문제 예방, 번역에 필요한 제이슨 라이브러리 이용하는 정도입니다. 이 부분은 건드리지 마시고 그대로 두시면 됩니다.
api2:
HttpObj := ComObjCreate("WinHttp.WinHttpRequest.5.1")
HttpObj.Open("POST",BaseURL)
HttpObj.SetRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8")
HttpObj.SetRequestHeader("파파고 api 발급받은 id 입력해주세요")
HttpObj.SetRequestHeader("파파고 api 발급받은 secret 입력해주세요")
위에 쌍따옴표 사이에 api키를 발급받아서 입력해야 하는데요. 발급받는 방법은 아래 네이버개발자센터로 들어가셔서
https://developers.naver.com/docs/papago/
상단에 보이는 메뉴에서 Application - 애플리케이션 등록으로 들어가주시구요.
어플리케이션 이름은 아무렇게나, 사용 api는 "Papago 번역" 선택, 환경 "WEB 설정", 비로그인시 오픈 API 서비스환경은 "" 넣어주세요. 그리고 등록하기를 눌러주시구요.
등록하기가 정상적으로 이루어졌다면 아래와 같이 Client ID 와 Client Secret이 보일겁니다. 복사하시고 편집로 가셔서 아까 말씀드린 쌍따옴표 사이에 ID와 Secret 각각 기입해주시면 됩니다. 번역기 제가 셋팅한대로 쓰시겠다면 여기까지만 하셔도 바로 사용 가능합니다.
!numpad1::
↑ 이부분이 오토핫키의 가장 큰 장점중 하나인데 단축키 기능입니다. !는 키보드의 왼쪽 ALT 키를 의미하며, numpad1은 키보드 우측의 숫자패드에 숫자 1을 의미합니다. (F키 밑에 있는 숫자키 쓰시려면 그냥 "1" 입력하심 됩니다. ex. !1::) 콜론 2개는 (::) 단축키 기능을 합니다. 그럼 ALT와 우측숫자패드의 1을 동시에 누르면 그 아래 명령들부터 시작된다는 겁니다.
ChKo2:
gosub,api1
ObjData:="source=zh-CN&target=ko&text=" . TarTextExample
위의 소스에서 zh-CN 과 ko 가 보이시나요? 앞부분이 번역할 대상, 뒷부분이 번역되어 출력되는 언어입니다. 언어코드로 된 하나의 약속인데 언어코드들은 아래와 같습니다.
1. ko: 한국어
2. ja: 일본어
3. zh-cn: 중국어 간체
4. zh-tw: 중국어 번체
5. hi: 힌디어
6. en: 영어
7. es: 스페인어
8. fr: 프랑스어
9. de: 독일어
10. pt: 포르투갈어
11. vi: 베트남어
12. id: 인도네시아어
13. fa: 페르시아어
14. ar: 아랍어
15. mm: 미얀마어
16. th: 태국어
17. ru: 러시아어
18. it: 이탈리아어
첫번째 단축키인 ALT+1의 단축키는 중국어를 한국어로 번역하여 팝업창을 띄워 보여주는 형태입니다. 단 번역할 텍스트를 마우스로 드래그 한 다음에 단축키를 눌러주세요. 클립보드에 담아서 진행하기 때문입니다. 그럼 독일어를 한국어로 번역하여 팝업으로 띄워보겠다 하면 위의 언어코드 참고하셔서 해당부분만 바꿔주시면 됩니다.
ObjData:="source=de&target=ko&text=" . TarTextExample
위와 같이 바꾸시면 되겠죠.
!numpad2::
goto,KoCh1
return
KoCh1:
Clipboard=
Clipboard:=""
Sleep,50
SendInput,^a
Sleep,100
SendInput,^c
Sleep,50
Send,^c
Sleep,50
gosub,ClipCheck1
goto,KoCh2
return
KoCh2:
gosub,api1
ObjData:="source=ko&target=zh-CN&text=" . TarTextExample ;한국어를 중국어로
gosub,api2
Clipboard = %chResult%
Sleep,100
SendInput,^v ;한국어를 중국어로 번역하여 붙여넣는다.
return
ALT+2번의 단축키는 한국어를 중국어로 번역하는 명령들이 담겨있습니다. 이번엔 드래그 안하셔도 됩니다. 한글로 타이핑 하시고 단축키만 누르시면 됩니다. 위에 표시한 부분중에 Sendinput 은 키보드 입력하겠다 라는 명령이구요. ^a 는 Ctrl+a 입니다. (모두 선택하기) 따라서 드래그 할 필요가 없겠죠. 마지막에 번역한 결과물이 chResult 라는 변수에 담기고 변수를 바로 입력시키면 종종 오류가 나더라구요. 그래서 변수를 다시 클립보드에 저장한 다음 붙여넣기 하도록 했습니다. (SendInput,^v)
ALT+3번의 단축키는 ALT+1과 로직은 같습니다. 언어코드 부분만 수정하여 영어를 한국어로 번역 및 팝업창으로 보여지게 했습니다.
ALT+4번과 ALT+5 번은 ALT+2와 로직 같습니다. 4번 한국어를 영어로 변환, 5번은 영어를 중국어로 변환.
언어코드를 수정하셔서 자주 사용하는 번역작업을 단축키로 지정해서 사용해보세요. 번역기를 자주 쓰시는 분이라면 이전과는 놀라울 정도로 속도에 확연한 차이가 보이실거에요. F키를 안쓰신다면 F1:: ~ F12:: 로 셋팅하시면 좀 더 편하실 수 있습니다. 키보드의 있는 모든 키는 단축키로 지정 가능하며 하나의 키, 두개 키 조합, 세개 키 조합 등 자유롭게 만드실 수 있습니다.
반자동 번역기는 최상단에 링크 유튜브를 참고하시면 더 도움이 되실겁니다.
(파파고api연동 및 라이브러리 출처 : https://blog.naver.com/goglkms/221344090609)