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


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に投稿し直して保全とか