🖥

#Google #API を叩いて #Qiita の自分の全記事を英語翻訳して新規投稿する例 ( #python + #shell ) (

2019/04/16に公開

I did today

Qiitaの前のアカウントの記事をGoogle英語翻訳して今のカウントで新規投稿しました (175記事ぐらい)

  • All my Qiita articles translate Japanese to Englisha and create many posts.
  • btw this article written by my hand without automatic translmation.

image.png

Code - For execute scripts

https://github.com/YumaInaura/YumaInaura/tree/b56c0b6e117873285b211c9c266a5668659389f4/api/exe/qiita-translate

Code - For Google translate library

https://github.com/YumaInaura/YumaInaura/tree/b56c0b6e117873285b211c9c266a5668659389f4/api/lib/google-translate

Code - For Qiita library

https://github.com/YumaInaura/YumaInaura/tree/b56c0b6e117873285b211c9c266a5668659389f4/api/lib/qiita

Do

  • Translate my old account's 175 ariticles From Japanese to English.

image.png

Why

Qiitaはちらほら英語ユーザーも使ってるみたいです

  • I know some English users on the our Qiita.
  • I wanna give some help for global users from they Googling.

How

いろいろAPI叩きました

Steps 1

Qiita API で yinaura の記事を全て取得して、JSONをlogに記録しておきます
記事情報は public なので、特に認証をおこなう必要はありません

  • Get All items as JSON from Qiita

Step 2

Google翻訳が文字数当たりの課金なので shell + jq コマンドとかで、翻訳対象文字数を数えてみました

  • Display preview of targets of translation items.
  • Count all characters total translation

image.png

  • Check my pay money how much cost for do it

image.png

https://cloud.google.com/translate/pricing?hl=en

100万文字でも 2000円ちょいです、楽勝ですよね

image.png

https://cloud.google.com/translate/pricing?hl=ja

Step 3

いったん Markdown を HTML変換してから Google 翻訳にかけてます、そうでないとMarkdown style が崩れてしまうので

  • Convert Markdown to HTML because Google Translate API break Markdown style
  • I use ruby gem 'redcarpet'

Step 4

Json 形式を保ったまま Google 翻訳にかけます

  • Google translate and generate json
$ QIITA_ITEMS_USER_NAME=yinaura FILTER_START=1 FILTER_END=5 ./translate-all.sh

image.png

一気に翻訳しようとして失敗するのが怖かったので、3記事、次の7記事、次の10記事、次の30記事‥というように少しずつ試しました
image.png

Step 5

最後は HTML形式をMarkdown形式に戻します、ここでもデータはJSONを保ちます

  • revert Translated HTML to Markdown
  • i Use ruby gem 'reverse_markdown'

Step 6

python で標準入力に JSON を受け取って複数の新規投稿をおこなう簡易スクリプトを作っているので、そいつに任せます

  • Hit Qiita API and create posts
  • keep all Qiita tags
  • Add link to Original Japanese version item

Check Traffic on GCP

GCP でのトラフィックもチェックは欠かせないですよね

image.png

You can see many referral "Linked from "links on this article

この記事にリンク元がたくさんついているのが分かると思います

image.png

NExt

中国ユーザーもちらほらいると聞いたので、そちらもチャレンジしてみようと思います

  • this account Japanese items to English
  • JApanese to Chinese

今このアカウントでの日本語記事も1000個はあるので、次はぼちぼち定時実行するなどして回していこうかなと思っています
「翻訳済み」の管理をタグで実現などしようかとも思いましたが、コストがかかりそうなので、とりあえずやってません

MAke our Qiita Global World WIDE!

海外にQiitaみたいなサービスってないよね?ということをTwitterで人と話したりしていました

image.png

https://twitter.com/YumaInaura/status/1115057862823170051?s=20

unn you think its Too Noisey?

sry

Read Qiita trend super Valuable items but not mine lol

OThers

こんなのもやってみたいけれど

  • Qiitaにバックアップシステムがないので、全記事をGithub ISsueに投稿し直して保全とか

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2019-04-16

Discussion