6 stable releases

2.1.1 Dec 24, 2024
2.1.0 Jul 14, 2024
2.0.0 Mar 3, 2024
1.0.2 Dec 1, 2023

#151 in Text processing

Download history 5/week @ 2024-09-11 10/week @ 2024-09-18 12/week @ 2024-09-25 2/week @ 2024-10-30 1/week @ 2024-11-06 4/week @ 2024-12-04 3/week @ 2024-12-11 115/week @ 2024-12-18 37/week @ 2024-12-25

159 downloads per month

MIT/Apache

75KB
1.5K SLoC

dptran

English | 日本語版はこちら

License: MIT License: Apache-2.0 crates.io

A tool to run DeepL translations on your command line.
It's written in Rust, and uses curl to connect to the DeepL API.
To use, you need to get the DeepL API key from https://www.deepl.com/en/pro-api/.

Installation

Binary crate

dptran is available on crates.io.

  1. Install rustup or cargo to your computer.
  2. run this:
$ cargo install dptran

Library crate

dptran includes the binary crate's dependent crates (such as clap, serde_json and confy) by the default features.
To install only the library crate, please disable the default features by adding --no-default-features argument.

$ cargo add dptran --no-default-features

Or, add this to your Cargo.toml:

[dependencies]
dptran = { version = "2.1.1", default-features = false }

Binary crate

The binary crate provides a command-line tool to translate text using the DeepL API.

Features

  • Translate text from the command line arguments.
  • Translate text interactively.
  • Translate multiple lines.
  • Translate text from the pipeline.
  • Translate text from a file. (v2.1.0-)
  • Translate text from an editor. (v2.1.0-)
  • Remove line breaks from the source text. (v2.1.0-)
  • Output to a text file. (v2.1.0-)
  • Check the number of characters remaining to be translated.
  • Check valid language codes.
  • Cache the translation results. (v2.1.0-)

Language codes

If you omit the destination language option, the translation will be done in English (EN) by default.
For more information about language codes, see the language list getting from DeepL API:

$ dptran list -s    # for the list of source languages
 AR: Arabic     BG: Bulgarian  CS: Czech     
 DA: Danish     DE: German     EL: Greek     
 EN: English    ES: Spanish    ET: Estonian  
 FI: Finnish    FR: French     HU: Hungarian 
 ID: Indonesian IT: Italian    JA: Japanese  
 KO: Korean     LT: Lithuanian LV: Latvian   
 NB: Norwegian  NL: Dutch      PL: Polish    
 PT: Portuguese RO: Romanian   RU: Russian   
 SK: Slovak     SL: Slovenian  SV: Swedish   
 TR: Turkish    UK: Ukrainian  ZH: Chinese   
$ dptran list -t    # for the list of target languages
 AR     : Arabic                 BG     : Bulgarian             
 CS     : Czech                  DA     : Danish                
 DE     : German                 EL     : Greek                 
 EN     : English                EN-GB  : English (British)     
 EN-US  : English (American)     ES     : Spanish               
 ET     : Estonian               FI     : Finnish               
 FR     : French                 HU     : Hungarian             
 ID     : Indonesian             IT     : Italian               
 JA     : Japanese               KO     : Korean                
 LT     : Lithuanian             LV     : Latvian               
 NB     : Norwegian              NL     : Dutch                 
 PL     : Polish                 PT     : Portuguese            
 PT-BR  : Portuguese (Brazilian) PT-PT  : Portuguese (European) 
 RO     : Romanian               RU     : Russian               
 SK     : Slovak                 SL     : Slovenian             
 SV     : Swedish                TR     : Turkish               
 UK     : Ukrainian              ZH     : Chinese (simplified)  
 ZH-HANS: Chinese (simplified)   ZH-HANT: Chinese (traditional)

Usage

Setting API key

Please be sure to get your DeepL API key and set it up on dptran before using the service.
The API key is available for free (up to 500,000 characters per month).
https://www.deepl.com/en/pro-api/

$ dptran set --api-key [API key]

Translate from the command line arguments

If any language is not specified, the source language is automatically detected and the destination language is set to English (EN) by default.
It is possible to specify the source language with the -f option and the destination language with the -t option.

$ dptran Bonjour
Hello
$ dptran -t FR Hello
Bonjour

Translate in interactive mode

$ dptran
> ありがとうございます。
Thank you very much.
> Ich stehe jeden Tag um 7 Uhr auf.
I get up at 7 a.m. every day.
> La reunión comienza a las 10 a.m.
The meeting begins at 10 a.m.
> 今天玩儿得真开心!
Had a great time today!
> quit

Multiple source texts can be translated interactively.
Exit with quit.

If you want to translate the source texts into a specific language, use the -t option.

Translate multiple lines

To enter multiple lines, use the -m option.
Then enter a blank line to send the input.

$ dptran -m -t JA
> A tool to run DeepL translations on your command line.
..It's written in Rust, and uses curl to connect to the DeepL API.
..To use, you need to get the DeepL API key from https://www.deepl.com/en/pro-api/.
..
コマンドラインでDeepL翻訳を実行するためのツールです。
これはRustで書かれており、DeepL APIへの接続にはcurlを使用します。
使用するには、https://www.deepl.com/en/pro-api/ から DeepL API キーを取得する必要があります。

Translate from the pipeline

You can translate the output of other commands with dptran.

e.g. Translate the content of the man page into Japanese.

$ man ls | cat | dptran -t JA

Translate from a file

You can translate the contents of a text file with dptran by using the -i option.

$ dptran -i file.txt

Translate from an editor application (e.g. vi, vim, nano, emacs, etc.)

You can translate the contents from an editor with dptran by using the -e option.

Example: vi

$ dptran set -e vi
$ dptran -e

Example: vim

$ dptran set -e vim
$ dptran -e

Example: nano

$ dptran set -e nano
$ dptran -e

Example: emacs

$ dptran set -e "emacs -nw"
$ dptran -e

Remove line breaks

You can remove line breaks from the source text with the -r option.

$ dptran -t FR -e -r

For example, the following input (in the editor):

Hello!
How are you?

will be translated as one line like this:

Bonjour, comment allez-vous ?

Output to a text file

You can output the translation result to a text file with the -o option.

$ dptran -t JA Hello -o output.txt

Show help

For more information about commands, see help:

$ dptran -h

Displays the number of characters remaining to be translated

$ dptran -u
usage: 222 / 500000 (0%)
remaining: 499778

You can see the number of remaining characters that can be translated by DeepL API in the current month.
The free DeepL API plan lets you translate up to 500,000 characters per month.

Change default target language

It is set to English (EN) by default.
You can change it with set --target-lang.
For example, to change it to Japanese (JA), do the following:

$ dptran set --target-lang JA

Reset settings

You can reset all settings.
Note: The API key will be reset as well. If you wish to use dptran again, please set the API key again.

$ dptran set --clear

Uninstall

$ cargo uninstall dptran

Library crate (v2.0.0-)

See the documentation for the library crate here.

Dependencies

~10–22MB
~290K SLoC