Python 제작 자동화 번역 도구

4691 단어 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 자동화 번역 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!

좋은 웹페이지 즐겨찾기