@hocgin/translate-cli
v1.0.0
Published
A CLI translation tool supporting multiple engines (Google/Bing/MyMemory)
Readme
translate-cli
A command-line translation tool supporting multiple engines (Google / Bing / MyMemory), inspired by translate-shell.
Installation
# Clone and build
git clone <repo-url> translate-cli
cd translate-cli
pnpm install
pnpm build
# Link globally to use the `translate` command
pnpm link --globalRequires Node.js >= 18.
Usage
translate [OPTIONS] [SOURCE]:[TARGETS] [TEXT]...Basic Translation
# Auto-detect source language
translate :zh Hello
# Specify source and target
translate en:zh Hello World
# Translate to multiple languages
translate :zh+ja+ko HelloInput Sources
# Text argument
translate :zh "Hello World"
# Stdin pipe
echo "Hello World" | translate :zh
# Read from file
translate -f input.txt :zhOutput Modes
# Normal (default): multi-target shows [Language] prefix
translate :zh+ja Hello
# Brief: translation text only, ideal for piping
translate -b :zh Hello
# Verbose: show engine, source/target languages, and translation
translate -v :zh HelloSwitch Engine
translate -e google :zh Hello # default
translate -e bing :zh Hello
translate -e mymemory :zh HelloInteractive REPL
translate -I :zhInside the REPL, type text to translate directly. Special commands:
| Command | Description |
|----------------|--------------------------------------|
| :help | Show available commands |
| :q / :quit | Exit the REPL |
| :e <engine> | Switch translation engine |
| :s <from>:<to> | Switch language pair |
| :l | List supported languages |
List Languages
translate --list-languagesAll Options
| Option | Description | Default |
|---------------------|--------------------------------------|----------|
| -e, --engine | Translation engine (google/bing/mymemory) | google |
| -b, --brief | Brief output mode | false |
| -v, --verbose | Verbose output mode | false |
| -I, --interactive | Interactive REPL mode | false |
| -f, --file | Read input from file | - |
| --list-languages | List all supported languages | false |
| -V, --version | Show version number | - |
Language Pairs
The format is [SOURCE]:[TARGETS], where targets can be combined with +:
:zh-- auto-detect to Chineseen:zh-- English to Chinese:zh+ja+ko-- auto-detect to Chinese, Japanese, Korean
Run translate --list-languages to see all supported language codes.
Development
# Build
pnpm build
# Run directly without installing
node dist/cli.js :zh Hello
# or
pnpm dev -- :zh Hello
# Test
pnpm test
pnpm test:coverage
# Lint & Format
pnpm lint
pnpm formatProject Structure
src/
├── cli.ts # CLI entry, commander registration
├── types/index.ts # Core type definitions
├── engines/
│ ├── types.ts # TranslateEngine interface
│ ├── google.ts # Google engine (default)
│ ├── bing.ts # Bing engine
│ ├── mymemory.ts # MyMemory engine
│ └── index.ts # Engine registry & factory
├── commands/
│ ├── translate.ts # Main translation logic
│ ├── interactive.ts # Interactive REPL mode
│ └── languages.ts # Language list output
└── utils/
├── language.ts # Language code mapping (100+ languages)
├── parse.ts # Language pair parser
└── display.ts # Output formattingLicense
MIT
