Vim
Terminal

ターミナルやvimからgoogle翻訳を使う

More than 1 year has passed since last update.


はじめに

プログラムを書いたり成果物を公開したりしていると何かと英語を書かねばならないことが多いと思います.

私自身は英語がものすごく得意と言うわけではないので自分が書いた英語が不安なときはGoogle翻訳に渡して自分が思っているような日本語にちゃんと翻訳されるかどうかというチェックをしたりします.

普段文章を書くときはほとんどVimを使っているのですがちょっとした英語のチェックのためにマウス操作を強いられるのが結構なストレスです.そこでなにか良いツールが無いかと探していたらtranslate-shellというツールを発見したので備忘録的に個人的に便利だと思う使い方をまとめたいと思います.


導入

Gnu Awkさえ入っていれば導入はかんたんです.

git cloneしてmake installするだけです.

$ git clone https://github.com/soimort/translate-shell

$ cd translate-shell/
$ make
$ [sudo] make install


ターミナルから使う

基本的な使い方はtrans -sl=翻訳元の言語 -tl=翻訳先の言語 "翻訳したいテキスト"のような感じです.なお対話環境で翻訳したりなど結構リッチな機能も色々備えているようですが今回は簡単にチェックするのが目的なので扱いません.

$ trans -sl=en -tl=ja "Peace begins with a smile."                          

Peace begins with a smile.

平和は笑顔で始まります。
(Heiwa wa egao de hajimarimasu.)

Translations of Peace begins with a smile.
[ English -> 日本語 ]

Peace begins with a smile.
平和は笑顔で始まります

長い出力が鬱陶しいときは-briefまたは-bをオプションに追加します.

$ trans -b -sl=en -tl=ja "Peace begins with a smile."

平和は笑顔で始まります。

ファイルを翻訳したいときは-i ファイル名でファイルを指定します.

$ trans -b -sl=en -tl=ja -i teresa.txt 

平和は笑顔で始まります。

なおファイルに結果を出力したければ同様に-o ファイル名で出力先を指定できます.また-vまたは-viewを指定するとlessなどのページャで結果を見ることもできます.


Vimから使う

別にこのツールに限った使い方ではないのでvimmerな方ならここまで読めばここから先は必要ないと思いますが備忘録として書いておきます.


編集中のファイル全体を翻訳

:w !コマンドでバッファの中身を任意のコマンドに流し込めます.なので今回の場合だと以下のようになります.

:w !trans -b -sl=en -tl=ja

これで翻訳結果が表示されエンターキーで編集に戻ります.


選択範囲を翻訳

Visualモードで範囲選択後:を押して任意のコマンドを入力すれば選択行に対して処理を実行できます.具体的には以下のような手順です.

v

...範囲を選択...
:
w !trans -b -sl=en -tl=ja

最終的なコマンドラインは以下のようになっているはずです.

:'<,'>w !trans -b -sl=en -tl=ja

いちいち打つのが面倒なのでtrans -b -sl=en -tl=jaをシェルで適当なエイリアスを設定しておくかVimのキーバインドに設定しておくと良さそうです.