一个简单实用的命令行翻译工具,支持多种语言互译,目前仅支持百度api,后续支持其他api和大模型翻译
- 🌐 多语言支持 - 支持26种语言互译,包括中、英、日、韩、法、德、俄等
- 🎯 智能检测 - 自动识别输入文本的语言
- 🌈 彩色输出 - 美观的颜色显示和格式化
- ⚡ 多种输入 - 支持命令行参数、管道输入、交互模式
- 🔧 灵活配置 - 支持配置文件和命令行参数
- 🌍 代理支持 - 智能代理检测和配置
- 📦 轻量级 - 单个可执行文件,无依赖
# 克隆项目
git clone <repository-url>
cd fanyi
# 运行安装脚本
chmod +x install.sh
./install.sh
# 确保已安装 Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# 编译项目
cargo build --release
# 复制到用户目录
cp target/release/fanyi ~/.local/bin/
# 确保 ~/.local/bin 在 PATH 中
export PATH="$HOME/.local/bin:$PATH"
- 访问 百度翻译开放平台
- 注册账号并获取 APP ID 和密钥
- 配置到工具中:
fanyi config --app-id YOUR_APP_ID --secret-key YOUR_SECRET_KEY
# 默认中文到英文
fanyi "你好世界"
# 输出:Hello world
# 指定语言方向
fanyi --from en --to zh "Hello world"
# 输出:你好,世界
# 自动检测语言
fanyi --from auto --to zh "Good morning"
# 输出:早上好
# 命令行参数
fanyi "要翻译的文本"
# 管道输入
echo "Hello" | fanyi --to zh
# 交互模式
fanyi
# 然后输入要翻译的文本
# 查看当前配置
fanyi config --show
# 设置默认语言
fanyi config --default-from zh --default-to en
# 配置代理
fanyi config --proxy-mode disable # 禁用代理
fanyi config --proxy-mode auto # 自动检测
fanyi config --proxy-mode enable # 强制启用
# 查看代理状态
fanyi proxy-status
# 临时禁用代理
fanyi --no-proxy "文本"
# 临时强制使用代理
fanyi --force-proxy "文本"
# 配置自定义代理
fanyi config --http-proxy http://proxy.example.com:8080
# 查看支持的语言
fanyi languages
# 禁用颜色输出
fanyi --no-color "文本"
# 查看帮助
fanyi --help
配置文件位置:~/.config/fanyi/config.toml
[translation]
default_from = "zh" # 默认源语言
default_to = "en" # 默认目标语言
provider = "baidu" # 翻译服务提供商
[baidu]
app_id = "YOUR_APP_ID" # 百度翻译APP ID
secret_key = "YOUR_SECRET_KEY" # 百度翻译密钥
api_url = "https://fanyi-api.baidu.com/api/trans/vip/translate"
[ui]
enable_colors = true # 启用颜色输出
show_language_detection = true # 显示语言检测结果
[proxy]
enabled = "auto" # 代理模式:auto/enable/disable
http_proxy = "" # HTTP代理地址(可选)
https_proxy = "" # HTTPS代理地址(可选)
工具支持三种代理模式:
- auto(默认):自动检测环境变量中的代理设置
- enable:强制启用代理
- disable:禁用所有代理
工具会自动检测以下环境变量:
http_proxy
/HTTP_PROXY
https_proxy
/HTTPS_PROXY
- 命令行参数(
--no-proxy
,--force-proxy
) - 配置文件中的代理设置
- 环境变量
代码 | 语言 | 代码 | 语言 |
---|---|---|---|
auto | 自动检测 | zh | 中文 |
en | 英语 | jp | 日语 |
kor | 韩语 | fra | 法语 |
spa | 西班牙语 | de | 德语 |
ru | 俄语 | th | 泰语 |
ara | 阿拉伯语 | it | 意大利语 |
pt | 葡萄牙语 | el | 希腊语 |
nl | 荷兰语 | pl | 波兰语 |
... | 更多语言请使用 fanyi languages 查看 |
fanyi [选项] [文本] [命令]
选项:
-f, --from <FROM> 源语言 (例如: zh, en, ja)
-t, --to <TO> 目标语言 (例如: zh, en, ja)
--no-color 禁用颜色输出
--no-proxy 禁用代理
--force-proxy 强制使用代理
-h, --help 显示帮助信息
-V, --version 显示版本信息
命令:
config 配置API密钥和设置
languages 列出支持的语言
proxy-status 显示代理状态
# 中译英(默认)
fanyi "今天天气很好"
# [ZH → EN]
# 原文: 今天天气很好
# 译文: The weather is very good today
# 英译中
fanyi --from en --to zh "How are you?"
# [EN → ZH]
# 原文: How are you?
# 译文: 你好吗?
# 自动检测 + 翻译
fanyi --from auto --to zh "Bonjour"
# [AUTO → ZH]
# 检测到语言: FRA
# 原文: Bonjour
# 译文: 你好
# 使用管道
echo -e "Hello\nWorld" | xargs -I {} fanyi --to zh "{}"
# 翻译文件内容
cat text.txt | fanyi --from en --to zh
# 查看当前代理状态
fanyi proxy-status
# === 代理状态 ===
# 配置的代理模式: Auto
# 当前生效的HTTP代理: http://proxy.example.com:8080
# 当前生效的HTTPS代理: http://proxy.example.com:8080
# 禁用代理进行翻译
fanyi --no-proxy "无需代理的翻译"
# 在有代理的环境中临时禁用
fanyi config --proxy-mode disable
# 开发版本
cargo build
# 发布版本
cargo build --release
cargo test
cargo clippy
cargo fmt
# 使用安装脚本卸载
./install.sh uninstall
# 或手动删除
rm ~/.local/bin/fanyi
rm -rf ~/.config/fanyi # 删除配置(可选)
- 检查网络连接
- 检查代理设置:
fanyi proxy-status
- 尝试禁用代理:
fanyi --no-proxy "测试"
- 确认API密钥正确:
fanyi config --show
- 检查百度翻译账户余额和调用次数
- 重新配置:
fanyi config --app-id YOUR_ID --secret-key YOUR_KEY
- 确保Rust已正确安装:
rustc --version
- 检查PATH设置:
echo $PATH
- 确认
~/.local/bin
在PATH中
MIT License