Skip to content

ASPDP/deepl-cli

 
 

Repository files navigation

deepl-cli

Release Package PyPI version

Code Coverage Test

Maintainability pre-commit.ci status

image

Note: This project works without DeepL API key. With DeepL API, use DeepLcom/deepl-python

Install

pip install deepl-cli

Usage

CLI

deepl -F en -T ja -s <<<'This tool is useful for me.'
# このツールは私にとって便利だ。
deepl -F ja -T en -s <<<'このツールは私にとって便利だ。'
# This tool is useful for me.

curl https://example.com | sed -nr '/^<body>/,/<\/body>/s/<[^>]+>//gp' | tr -d \\n > txt
deepl -f txt -F en -T ja
# 例文ドメイン このドメインは、文書の例文に使用するためのものです。事前の調整や許可を得ることなく、このドメインを文献で使用することができます。   詳細はこちら

HTTP Server

You can also run deepl-cli as an HTTP server:

# Start server on default port 3001
deepl --server

# Start server on custom host/port  
deepl --server --host 0.0.0.0 --port 8080

The server provides a REST API endpoint for translation:

Endpoint: GET /api/translate

Parameters:

  • engine - Translation engine (always uses DeepL)
  • from - Source language code (e.g., en, ru, ja)
  • to - Target language code
  • text - Text to translate (URL encoded)

Example:

curl "http://127.0.0.1:3001/api/translate?engine=deepl&from=en&to=ru&text=hello%20world"

Response:

{
  "engine": "deepl",
  "detected": "",
  "translated-text": "привет мир",
  "source_language": "en", 
  "target_language": "ru"
}
$ deepl -h
usage: deepl [-h] (-f PATH | -s | --server) [-F FR] [-T TO] [--host HOST] [--port PORT] [-t MS] [-v] [-V]

DeepL Translator CLI without API Key

options:
  -h, --help            show this help message and exit
  -f PATH, --file PATH  source text file to translate (default: None)
  -s, --stdin           read source text from stdin (default: False)
  --server              run as HTTP server (default: False)
  -F FR, --fr FR        input language (not required for server mode) (default: None)
  -T TO, --to TO        output language (not required for server mode) (default: None)
  --host HOST           server host (default: 127.0.0.1) (default: 127.0.0.1)
  --port PORT           server port (default: 3001) (default: 3001)
  -t MS, --timeout MS   timeout interval (default: 5000)
  -v, --verbose         make output verbose (default: False)
  -V, --version         show program's version number and exit

valid languages of `-F` / --fr`:
{'cs', 'fr', 'ru', 'hu', 'zh', 'da', 'nl', 'es', 'lv', 'nb', 'de', 'ko', 'it', 'pt', 'pl', 'et', 'ar', 'el', 'en', 'id', 'sv', 'ro', 'ja', 'uk', 'bg', 'sk', 'fi', 'tr', 'sl', 'lt'}

valid languages of `-T` / `--to`:
{'cs', 'fr', 'ru', 'hu', 'zh', 'da', 'nl', 'en-gb', 'es', 'lv', 'nb', 'de', 'ko', 'it', 'pt', 'zh-hans', 'pl', 'et', 'pt-br', 'ar', 'el', 'en', 'id', 'sv', 'ro', 'ja', 'uk', 'bg', 'en-us', 'sk', 'zh-hant', 'pt-pt', 'fi', 'tr', 'sl', 'lt'}

Package

from deepl import DeepLCLI

deepl = DeepLCLI("en", "ja")
deepl.translate("hello") #=> "こんにちわ"

If you use with asyncio, Use DeepLCLI.translate_async. See examples/async.py.

License

MIT

About

DeepL Translator CLI (without API Key)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 98.3%
  • Shell 1.1%
  • Dockerfile 0.6%