LoginSignup
1
0

CrystalでDeepLを使うコマンドラインツールを書いた

Last updated at Posted at 2023-12-13

はじめに

2023年Crystalアドベントカレンダーです。これまでに作ったツールでQiita記事にしていなかった DeepL CLI を紹介します。

DeepL CLI

DeepL APIを使用してテキストを翻訳するためのシンプルなコマンドラインツールです。

準備

まず、DeepLから有効なAPIキーを取得し、それを環境変数として設定します。(無料版でも十分に使えます)

export DEEPL_API_KEY=あなたのapiキー

インストール

最新のソースコードをダウンロードし、以下のコマンドを実行します。

cd deepl-cli
shards build --release

有料版の DeepL API Pro を契約している人は下記のように環境変数を指定してエンドポイントを変更してください。(この環境変数はコンパイル時に評価されるので、実行時に指定しても効果がないことにご注意ください。)

DEEPL_API_PRO=1 shards build --release # DeepL API Pro用

コンパイルされたバイナリファイルが bin フォルダに作成されます。

Linuxユーザーで、deepl-cli を使いたいだけの人は、muslで静的にコンパイルしたバイナリをGitHub Releaseから入手することもできます(DeepL API Freeのみ)

プロキシ設定(オプション)

プロキシ環境下でも動作します。

export HTTP_PROXY=http://[IP]:[port]
export HTTPS_PROXY=https://[IP]:[port]

使用方法

DeepL Translator CLIを使用するには、deepl コマンドに続けて渡したい引数を実行します。

Usage: deepl [arguments]
    doc                              Upload and translate a document
    -i, --input [TEXT]               Input text
    -f, --from [LANG]                Source language [AUTO]
    -t, --to [LANG]                  Target language [EN]
    -u, --usage                      Check Usage and Limits
    -v, --version                    Show version
    -h, --help                       Show this help

例えば、以下のように使用します:

$ ./bin/deepl deepl -f en -t ja -i "I am a cat"
私は猫である

これで、"I am a cat." が日本語に翻訳されます。
コマンドラインツールなので標準入力を取ることもできます。

echo "I am a cat" | deepl -t ja
# 私は猫である

複数行を入力したいときは、この標準入力の機能を使えばOKです。

deepl -f ja
吾輩は猫である。
名前はまだない。

入力し終わったら CTRL + D を入力してEOFを送信します。

I am a cat.
I don't have a name yet.

利用できる言語のリストを表示したいときは、deepl -f もしくは deepl -t を入力します。

deepl -f | head
- BG     Bulgarian
- CS     Czech
- DA     Danish
- DE     German
- EL     Greek
- EN     English
- ES     Spanish
- ET     Estonian
- FI     Finnish
- FR     French
deepl -t | tail
- PT-BR  Portuguese (Brazilian)	true
- PT-PT  Portuguese (European)	true
- RO     Romanian            	false
- RU     Russian             	true
- SK     Slovak              	false
- SL     Slovenian           	false
- SV     Swedish             	false
- TR     Turkish             	false
- UK     Ukrainian           	false
- ZH     Chinese (simplified)	false

また、deepl --usage で、無料枠をどの程度使ったか確認することもできます。

deepl --usage

https://api-free.deepl.com/v2
character_count: 84
character_limit: 500000

おわりに

基本機能のみの簡単ツールですが便利に使うことができるかと思います。

ドキュメントの翻訳や、グロサリーなども実装されていないので機能拡張の余地はあります。PRを送ってくれたり、このツールをフォークして改良して独自のツールとしてメンテナンスしていただくのも大歓迎です。

この記事は以上です。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0