#動機
最近、CUIで作業することが多くなりました。
CUIは柔軟でとてもいいのですが・・・
#英語をいちいち翻訳していた
(これは自身の英語力の問題ですが)
pythonのトレースバックなどのエラーメッセージはある程度読めるようになりましたが、
Linuxのman
ページや、--help
などはほぼほぼ英語なので読めませんでした。
そこで・・・
#パイプを使えば翻訳スクリプトが作れるんじゃないか?
という発想に行きつきました。
#仕様
- googletransを使用
- コマンドライン引数でオプションを受け付ける
-
|
(パイプ)を使った入力にも対応させる
#実際に書いてみた
gistにも投稿しました。
#honnyaku.py
# ~ 標準入出力でテキストを受け取って、
# ~ それをprintする
import sys
from googletrans import Translator
from logging import getLogger, StreamHandler, DEBUG
# ~ ログ設定
logger = getLogger(__name__)
handler = StreamHandler()
handler.setLevel(DEBUG)
logger.setLevel(DEBUG)
logger.addHandler(handler)
logger.propagate = False
trans = Translator()
#メイン処理
def convert(text="なし", lang="ja"):
'''翻訳する関数'''
#数字以外のものを文字列に変換し、float型などstrに変換できない型を除外する
try:
text = str(text)
except:
logger.error("文字列か整数以外のものが入力されました。")
conv_text = trans.translate(text, dest=lang)
return conv_text.text
##テストコード
今回はテスト駆動開発風に開発しました。
# ~ テストコード
import honnyaku
try:
assert "こんにちは" == honnyaku.convert("hello")
except AssertionError:
print("失敗")
else:
print("成功")
うまく翻訳できました!
もう少しオプションの実装方法を考えたいので、次回にしたいと思います。