Python 제작 자동화 번역 도구
이 가능 하 다,~할 수 있다,...
읽 기 내용 에 영어 가 많이 포 함 된 PPT,Word,Excel 또는 메모 장 을 읽 을 때 영어 가 익숙 하지 않 기 때문에 유창 하 게 읽 기 위해 서 는 브 라 우 저 를 열 어 구 글 번역 의 메 인 인터페이스 에 들 어간 다음 에 영 어 를 구 글 번역 의 입력 상자 에 복사 한 다음 에 번역 결 과 를 PPT,Word,Excel 로 다시 만들어 야 한다.
만약 에 두 단어 가 괜 찮 으 면 100 개의 단 어 를 모 르 는 것 을 발견 하면 200 번 복사 해서 붙 여야 한다.이렇게 기계 적 인 반복 적 인 작업 은 프로그램 에 맡 겨 야 한다.이것 이 바로 제 가 아래 의 자동화 번역 도 구 를 디자인 하 는 취지 입 니 다.
사무 효율 을 높이 는 보물
위의 그림 과 같이 프로그램 을 실행 하고 배경 을 유지 하 며 컴퓨터 에 있 는 모든 소프트웨어 에서 텍스트 를 선택 하고 Ctrl+C 를 시스템 클립보드 에 복사 하면 프로그램 이 자동 으로 번역 을 완성 하 는 데 도움 을 주 고 번역 결 과 를 시스템 클립보드 에 자동 으로 복사 합 니 다.Ctrl+V 만 있 으 면 번역 결과 가 원문 에 대한 교 체 를 완성 합 니 다.
인 코딩 구현
프로그램 은 주로 두 부분 으로 나 뉘 는데 첫 번 째 부분 은 구 글 이 파충 류 를 번역 하 는 것 이 고 두 번 째 부분 은 번역 결 과 를 자동 으로 교체 하 는 업무 논 리 를 실현 하 는 것 이다.
파충류
브 라 우 저 F12 개발 자 도 구 를 통 해 번역 요청 한 URL 을 쉽게 찾 을 수 있 습 니 다.http://translate.google.cn/translate_a/single?client=t&sl=en&tl=zh-CN&hl=zh-CN&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss &dt=t&ie=UTF-8&oe=UTF-8&clearbtn=1&otf=1&pc=1&srcrom=0&ssel=0&tsel=0&kc=2
이 요청 은 두 개의 인 자 를 받 아들 입 니 다.하 나 는 우리 가 번역 해 야 할 문자열 q 입 니 다.다른 하 나 는 사용자 인증 에 사용 되 는 tk(token)입 니 다.그 중에서 q 는 쉽게 구성 되 고 tk 의 구 조 는 심혈 을 기울 여야 합 니 다.js 코드 를 디 버 깅 해 야 합 니 다.여 기 는 Github 의 큰 신의 바퀴 를 참고 하 십시오https://github.com/cocoa520/Google_TK
구 글 이 파충 류 를 번역 하 는 주요 코드 는 다음 과 같다.
def translate(tk, content):
if len(content) > 4891:
print(" !!!")
return
param = {'tk': tk, 'q': content}
result = requests.get("""http://translate.google.cn/translate_a/single?client=t&sl=en
&tl=zh-CN&hl=zh-CN&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss
&dt=t&ie=UTF-8&oe=UTF-8&clearbtn=1&otf=1&pc=1&srcrom=0&ssel=0&tsel=0&kc=2""", params=param)
data = result.json()
print(data[0][0][0])
결 과 를 되 돌려 주 는 것 은 json 형식 이 며,번역 결 과 는 결과 의 첫 번 째 모듈 에 저 장 됩 니 다.Python 운영 체제 클립보드
클립보드 내용 을 읽 는 코드 를 다음 과 같이 함수 로 봉 합 니 다.
def getText():#
#
w.OpenClipboard()
#
d = w.GetClipboardData(win32con.CF_TEXT)
#
w.CloseClipboard()
try:
return d.decode('utf-8')
except:
return d.decode('gbk')
반환 값 d 는 바이트 형식 입 니 다.디 코딩 이 필요 합 니 다.중국 어 는 gbk 형식 으로 디 코딩 하고 영 어 는 utf-8 로 디 코딩 합 니 다.유사 하 게 클립보드 에 기 록 된 코드 는 다음 과 같 습 니 다.
def setText(aString):#
#
w.OpenClipboard()
#
w.EmptyClipboard()
#
w.SetClipboardText(aString)
#
w.CloseClipboard()
번역 결 과 를 원문 으로 자동 으로 바 꾸 는 논 리 를 실현 하 는 코드 는 다음 과 같다.
while(True):
#
try:
cs = getText()
except:
time.sleep(1)
cs = getText()
print('cs',cs)
if cs and cs != ls:
print(' ')
content = getText()
tk = js.getTk(content)
res = translate(tk, content)
setText(res)
time.sleep(1)
ls = res
주의해 야 할 것 은 시스템 클립보드 대상 은 단일 모드 로 운영 체제 범위 내 에 하나 밖 에 없 으 며 읽 기와 쓰기 클립보드 가 서로 배척 되 어 있 으 며 클립보드 읽 기(쓰기)와 함께 클립보드 에 대한 쓰기(읽 기)작업 을 허용 하지 않 습 니 다.이러한 상황 을 생각해 보 세 요.우 리 는 다른 소프트웨어 에서 Ctrl+C 를 클립보드 에 기록 합 니 다.이때 우리 의 프로그램 코드 는 읽 기 클립보드 줄 에 실 행 됩 니 다.오류 가 발생 할 수 있 습 니 다.제 해결 방법 은 try..except 문 구 를 사용 하여 1s 지연 시 켜 서 읽 기,쓰기 충돌 확률 을 크게 낮 출 수 있 지만 프로그램의 성능 을 소모 하 는 것 입 니 다.가장 좋 은 방법 은 클립보드 대상 핸들 이 점용 되 었 는 지 판단 하 는 것 입 니 다.사실 클립보드 대상 핸들 이 점용 되 었 는 지 판단 하 는 API 가 있 는 지 찾 고 있 었 지만 찾 지 못 했 습 니 다.항목 주소
https://github.com/Python3Spiders/GoogleAutoTranslationTool
이상 은 Python 이 자동화 번역 과 교 체 를 실현 하 는 스 크 립 트 의 상세 한 내용 입 니 다.python 자동화 번역 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.