Alfred のGoogle翻訳ワークフローを作りました。

AlfredのGoogle翻訳ワークフローを作りました。
https://github.com/nkmr-jp/alfred-quick-translate

# 作った経緯
- Google翻訳が進化してかなり実用的な精度になったのでもっと活用したいと思った。
- Alfredを入れてみてワークフローがすごく便利だった。
- traslate-shell を知って、これは作れそうと思った。

去年の年末頃試しに作ってみて使ってみたらなかなか便利だったので
折角なので公開してみました。

# Alfred Quick Translate
- [Alfred](https://www.alfredapp.com/) 対応のGoogle翻訳ワークフローです。(※有料のPowerpack が必要です。バージョンは3と4と5で動作確認済みです。)
- [translate-shell](https://github.com/soimort/translate-shell) を使っています。
- 今のところ日↔英のみ対応しています。 
- iconは[iconfinder](https://www.iconfinder.com/icons/1249992/google_media_network_search_social_icon#size=128)で探しました。

## 機能
翻訳してテキストを貼り付け
<img src="https://qiita-image-store.s3.amazonaws.com/0/11520/6d06d952-148a-9377-d28f-93cfd4540813.gif" width="700">

翻訳してそのまま検索
<img src="https://qiita-image-store.s3.amazonaws.com/0/11520/53d81149-66f8-baff-a2ff-f15c8daf693e.gif" width="700">

テキストを選択して翻訳
<img src="https://qiita-image-store.s3.amazonaws.com/0/11520/b1db56fc-059b-5430-1324-23ad263e95d4.gif" width="800">

翻訳したログの自動保存 (`~/translate_log.yml`)
<img width="500" alt="2017-03-1313.35.09.png" src="https://qiita-image-store.s3.amazonaws.com/0/11520/105443d6-efce-d17a-fd20-027d8bc7d9a4.png">

クリップボードにも自動で保存
Alfredのクリップボード機能を使うとクリップボードの履歴を検索できるので便利です。
<img width="500" alt="2017-03-1313.38.05.png" src="https://qiita-image-store.s3.amazonaws.com/0/11520/1e2dcb09-ea9b-e32f-07b4-6bb56d086fae.png">

どの機能を使っても、翻訳前、翻訳後のテキストは
ログファイルとクリップボードの両方に自動で保存されます。
    
## インストール

1:  [Alfred](https://www.alfredapp.com/) をインストールし、Powerpackを購入してライセンス認証。

2:  [translate-shell](https://github.com/soimort/translate-shell) をインストール。

```shell
brew install translate-shell
```

3: [quick-translate.alfredworkflow](https://github.com/nkmr-jp/alfred-quick-translate/releases/download/v1.0.0/quick-translate.alfredworkflow) をダウンロード

4: ダウンロードした `quick-translate.alfredworkflow` をクリックして開くとAlfredが起動するので`import`をクリック。

<img width="633" alt="2017-03-1311.52.08.png" src="https://qiita-image-store.s3.amazonaws.com/0/11520/e74a0e2b-0fc4-414f-9a20-e624b932a919.png">


## Hotkeyの設定
AlfredのPreferencesのWorkflowsからQuick Translateを開くとこのように各機能のHotkeyが設定できます。
初期の状態ではHotkeyは空白ですのでお好みのキーを割り当てて使ってください。
以下の画像の設定だと。

- `alt + s` : 日本語 → 英語 の翻訳ランチャーが起動
- `alt + cmd + s` : 英語 → 日本語 の翻訳ランチャーが起動
- `alt + cmd + z` : 選択した日本語のテキストを英語に変換する。
- `alt + z` : 選択した英語のテキストを日本語に変換する。

となります。

<img width="400" alt="2017-03-1310.44.54.png" src="https://qiita-image-store.s3.amazonaws.com/0/11520/07b38db1-93f4-3aae-c6c4-8967edd54857.png">

## 使い方
### サクッと翻訳したい
Hotkeyの設定で割り当てたキーで翻訳ランチャーを起動します。
文字を入力するとリアルタイムで翻訳されます。
`Enter` を押すと、翻訳結果をエディタなどに貼り付けられます。
<img src="https://qiita-image-store.s3.amazonaws.com/0/11520/6d06d952-148a-9377-d28f-93cfd4540813.gif" width="700">

### 翻訳してGoogleで検索したい
Hotkeyの設定で割り当てたキーで翻訳ランチャーを起動します。
翻訳ランチャーでテキストを入力後
`ctrl + Enter` で翻訳後のテキストでググれます。
<img src="https://qiita-image-store.s3.amazonaws.com/0/11520/53d81149-66f8-baff-a2ff-f15c8daf693e.gif" width="700">
英語でググるときなかなか単語が出てこなかったりすると思うので、そういうとき便利です。

### テキストを選択して翻訳したい
翻訳したいテキストを選択して、Hotkeyに割り当てたキーを入力します。
<img src="https://qiita-image-store.s3.amazonaws.com/0/11520/b1db56fc-059b-5430-1324-23ad263e95d4.gif" width="800">
ブラウザだとGoogle翻訳の拡張機能などが使えますが、
たとえばソースコード上の英語コメントやコマンドの`--help` などをすぐ翻訳したいときにも使えて便利です。

# 中身について
shellで書いたスクリプトをいろんな処理とつなげています。
自分流に色々いじくってカスタマイズして使ってみてください。
![image](https://qiita-image-store.s3.amazonaws.com/0/11520/14c5ecf9-5991-1201-43cd-1236df2d427a.png)

# まとめ

結構サクサク翻訳できるようになったけど、
英文読むときにまだまだめんどくさいところがあるのでどうにかしたい。

- ~~chromeで「日本語に翻訳」と「原文のページを表示」をトグルできるショートカットキーがほしい。~~
    - できた https://qiita.com/nkmr_jp/items/74c46efe00608d3e9fb2
- iPhoneのTwitterの「英語から翻訳」でGoogle翻訳を使いたい。もしくはGoogle翻訳の使えるTwitterクライアントがほしい。
- iPhoneの「調べる」からGoogle翻訳を使いたい。(選択したテキストをGoogle翻訳で翻訳したい。)

何かいいやり方とかツールとか知っている方いたら教えてください。


# 参考記事
https://orebibou.com/2016/07/google翻訳をlinuxmacのコンソール上で！『translate-shell』/
http://geckotang.tumblr.com/post/104996742061/%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%95%E3%83%AD%E3%83%BC%E3%82%92github%E3%81%A7%E5%85%AC%E9%96%8B%E3%81%99%E3%82%8B-alfred

# Releases

## v2.0.0 (20年7月13日)
DeepL翻訳も使いたかったので３年ぶりぐらいにアップデートしてv2をリリースしました。
また、当初は日↔英のみ対応していましたが、他の言語も設定出来るようにしました。

アップデート詳細はこちら：
[Alfredの翻訳ワークフローv2リリース（DeepL翻訳や言語選択などに対応）](https://qiita.com/nkmr_jp/items/a577e1c4265c2c6a6531)

## v2.1.0 (22年1月21日)
以下の機能を追加しました。

- DeepL free API 対応
- 外国語スイッチ機能追加
- コード上の複数行のコメントを翻訳する機能を追加


https://github.com/nkmr-jp/alfred-quick-translate/releases