내 Qiita 기사를 자동 영어로 번역하여 Qiita/gist/Twitter에 게시하는 Python 스크립트를 작성해 보았습니다.

transQiita(만든 것)



transQiita는 Qiita API v2, googletrans을 사용하는 명령 행 애플리케이션입니다. 명령줄에서 실행하면 대화형(또는 비대화형)으로 Qiita의 기사를 자동으로 영어로 번역하여 Qiita에 게시할 수 있습니다.
또한 Qiita의 GitHub 연계와 Twitter 연계를 이용하여 gist/Twitter에 동시 게시할 수 있습니다(옵션).

GitHub 리포지토리: tm-tech/transQiita

바로 데모!





전 기사:
htps : // m / s pea k ch / ms / f 9 ~ d70024865 b f90 f0
 ↓
스크립트에 자동 게시된 영어 번역 기사:
htps : // m / s pea k ch / ms / 99d1530950987019 7d4

필요한 것



  • googletrans (9/20 시점에서 동작 불량을 일으키는 버그가 발생하고있는 것 같습니다만, 이 기사에서 해결책이 제시되고 있습니다)
  • Qiita 액세스 토큰 (환경 변수 QIITA_ACCESS_TOKEN으로 등록하거나 선택적으로 직접 지정)
  • e.g.
    $ pip install googletrans
    $ export QIITA_ACCESS_TOKEN='YOUR QIITA ACCESS TOKEN'
    

    명령줄에서 실행 예


    $ python transQiita.py  [-h] [--gist] [--tweet] [--private] [--auto] [--token TOKEN]
    

    옵션 인수


    -h, --help     ヘルプ
    --gist         GitHub 連携していれば、gist へコードブロック部を投稿
    --tweet        Twitter 連携していれば、投稿を Tweet
    --private      記事を限定共有投稿
    --auto         インタラクティブな実行をせず、自動実行(スケジュール実行時に利用)
    --token TOKEN  環境変数を利用しない場合、Qiita のアクセストークンを指定
    

    제한사항


  • 코드 블록 부분을 번역하면 들여 쓰기가 무너지므로 코드 블록 부분은 번역되지 않습니다.
  • 번역 처리를 하면 기호와 문자 사이에 공백이 삽입되므로 "**", "~~"등의 마크다운 장식이 작동하지 않습니다.

  • 참고로 한 기사


  • Qiita API v2를 사용하여 자신의 모든 게시물을 내보내는 Python 스크립트를 작성했습니다.
  • 파이썬에서 Google 번역을 사용할 수있는 모듈
  • Python으로 명령 줄 응용 프로그램을 만들 때 병아리

  • 후기


  • 데이터베이스를 사용하지 않고 갱신 처리를 할 수 있도록, 영역판 기사에 표시로서 「원 기사의 ID를 포함한 배너」를 붙이고 있습니다.
    원래 기사가 업데이트되면 원래 기사 ID 배너가있는 영어 번역 기사를 찾아 업데이트합니다.
    데이타베이스로 원기사와 영역기사의 관계성을 관리해도 됩니다만, 그만큼을 위해 데이타베이스를 준비하면 범용성이 없어진다고 생각했기 때문에, 다소 중복한 코드가 되려고 데이타베이스리스인 설계를 목표로 했습니다 했다.
    (정기적인 배치 처리로 사용하는 것을 상정하고 있었으므로, 다소 처리가 무거워지려고 했습니다)
  • 마크다운이 붕괴하는 치명적인 제한 사항에 대해서는, 정규 표현으로 수정하려고 했습니다만, 「※」이 「*」로 번역되거나와 불규칙한 장식 기호의 출현이 있기 때문에, 좌절했습니다. (해결책을 사안중)
  • 마지막으로 여담입니다 만
    인프라 가게의 나에게는, 최초의 Python 투고가 됩니다. 디버그 부족한 곳이 많이 있다고 생각하므로, 불편이 있으면 보고 주시면 다행입니다! (소성)
  • 좋은 웹페이지 즐겨찾기