#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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89618/e791adf2-ba43-a54f-69b3-5a66af98dcf2.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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89618/c49b6de9-66e7-57e0-9135-c50b0f044881.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叩きました

- Use Qiita API and Google Translate API and use python and shell and DO IT WELL.
- https://qiita.com/api/v2/docs
- https://cloud.google.com/translate/docs/

# 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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89618/58eba02d-6f1a-db7c-cab7-4442128bddd3.png)

- Check my pay money how much cost for do it

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89618/e125bab0-1319-0d28-66e9-4d9469244956.png)

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

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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89618/1053bcf2-b20d-93c4-fe4e-0984575b0fad.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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89618/5cf94c00-88dd-aae8-345a-b647f549668c.png)

一気に翻訳しようとして失敗するのが怖かったので、3記事、次の7記事、次の10記事、次の30記事‥というように少しずつ試しました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89618/8402f233-7c9e-7256-443f-70d4f8bf3441.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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89618/42b727db-bf42-5875-a75f-ab4a29088fbf.png)


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

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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89618/8e71747d-e550-4693-c389-0bdb7ba980f6.png)

# NExt

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

- this account Japanese items to English
- JApanese to Chinese

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


# MAke our Qiita Global World WIDE!

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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/89618/d3526b06-b456-ea8b-e43d-fc3389a542ef.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に投稿し直して保全とか








<!-- Update From Qiita API -->

# チャットメンバー募集


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

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





# Twitter


https://twitter.com/YumaInaura


<!-- Update From Qiita API -->