btcli 0.5.2

An online command-line translation tool for Chinese and other languages with TUI interface.
Documentation
# btcli - 百度翻译命令行工具 (O^_^O)

**btcli** 是一个基于百度翻译API的命令行翻译工具,支持图形用户界面和命令行两种操作模式。该工具提供快速、便捷的多语言翻译服务,同时具备完善的配置管理和日志记录功能。

## 项目地址 ( ^_^ )/
项目托管在 Gitee 上:https://gitee.com/Ironbayberry/btcli

## 功能特性 (¬‿¬)


- ~🌐~ **多语言支持**:支持中文、英语、日语、韩语等多种主流语言互译
- ~💻~ **双重模式**:支持命令行模式和图形用户界面模式
- ~⚙️~ **灵活配置**:可自定义AppID、API密钥、源语言和目标语言
- ~📝~ **日志记录**:可选的日志记录功能,便于问题追踪
- ~🎨~ **美观界面**:基于cursive库的终端图形界面
- ~🛡️~ **错误处理**:完善的错误处理和用户友好的错误提示
- ~🎉~ **趣味彩蛋**:内置特殊功能彩蛋

## 安装要求 (•̀ᴗ•́)و


- Rust 1.80+ (基于2024 edition)
- Cargo 包管理器

## 安装方法 (¬‿¬)


### 方法一:从源码构建 (•̀ᴗ•́)و


```bash
# 克隆仓库

git clone <repository-url>
cd btcli

# 构建项目

cargo build --release

# 运行程序

./target/release/btcli
```

### 方法二:直接运行 (¬‿¬)


```bash
# 直接运行(无需安装)

cargo run
```

## 使用方法 (•̀ᴗ•́)و


### 命令行模式 (¬‿¬)


当提供命令行参数时,程序自动进入命令行模式:

```bash
# 基本翻译

cargo run -- "Hello World"

# 或者使用构建后的可执行文件

./target/release/btcli "Hello World"
```

### 图形界面模式 (•̀ᴗ•́)و


当不提供任何参数时,程序自动进入图形界面模式:

```bash
cargo run
# 
./target/release/btcli
```

#### 界面快捷键 (•̀ᴗ•́)و


- `T` - 翻译文本 (。◕‿◕。)
- `C` - 清空文本 (¬‿¬)
- `V` - 查看设置 (•̀ᴗ•́)و
- `H` - 帮助信息 (¬‿¬)
- `A` - 关于 (•̀ᴗ•́)و
- `Q` - 退出程序 (¬‿¬)

## 配置说明 (•̀ᴗ•́)و


首次运行时,程序会自动生成 `config.toml` 配置文件:

```toml
appid = "your appid"
key = "your key"
source_lang = "auto"
target_lang = "zh"
enable_logging = false
```

### 配置参数 (¬‿¬)


- `appid`:百度翻译API的AppID
- `key`:API密钥
- `source_lang`:源语言(auto表示自动检测)
- `target_lang`:目标语言
- `enable_logging`:是否启用日志记录

### 设置界面 (•̀ᴗ•́)و


可以通过图形界面的"查看设置"功能修改配置,支持实时保存。

## 支持的语言 (¬‿¬)


| 语言 | 代码 | 语言 | 代码 | 语言 | 代码 |
|------|------|------|------|------|------|
| 自动检测 | auto | 中文 | zh | 英语 | en |
| 粤语 | yue | 文言文 | wyw | 日语 | jp |
| 韩语 | kor | 法语 | fra | 西班牙语 | spa |
| 泰语 | th | 阿拉伯语 | ara | 俄语 | ru |
| 葡萄牙语 | pt | 德语 | de | 意大利语 | it |

## 错误码说明 (•̀ᴗ•́)و


| 错误码 | 含义 | 解决方案 |
|--------|------|----------|
| 52000 | 成功 | - |
| 52001 | 请求超时 | 检查文本和语言参数 |
| 52002 | 系统错误 | 请重试 |
| 52003 | 未授权用户 | 检查AppID是否正确 |
| 54000 | 必填参数为空 | 检查参数是否完整 |
| 54001 | 签名错误 | 检查签名生成方法 |
| 54003 | 访问频率受限 | 降低调用频率 |

## 技术栈 (¬‿¬)


- **编程语言**:Rust 2024 Edition (•̀ᴗ•́)و
- **网络请求**:ureq (¬‿¬)
- **序列化**:serde + toml (•̀ᴗ•́)و
- **加密算法**:md5 (¬‿¬)
- **随机数**:rand (•̀ᴗ•́)و
- **日志系统**:log + env_logger (¬‿¬)
- **时间处理**:chrono (•̀ᴗ•́)و
- **界面库**:cursive (¬‿¬)
- **编码处理**:base64 (•̀ᴗ•́)و
- **静态变量**:lazy_static (¬‿¬)

## 项目结构 (•̀ᴗ•́)و


```
src/
├── conf.rs          # 配置管理
├── fycore.rs        # 核心翻译功能
├── fyerrcodes.rs    # 错误码处理
├── lib.rs           # 库入口和日志系统
├── main.rs          # 程序主入口
├── extract_help.rs  # 帮助信息提取
├── fancy_egg.rs     # 彩蛋功能
├── ui.rs            # UI模块管理
└── ui/              # UI组件
    ├── about.rs     # 关于界面
    ├── help.rs      # 帮助界面
    ├── index.rs     # 主界面
    ├── loader.rs    # UI加载器
    ├── lovely_items.rs # UI组件
    └── settings.rs  # 设置界面
```
## 许可证 (•̀ᴗ•́)و


本项目采用 Mozilla Public License Version 2.0 (MPL-2.0) 许可证。

Copyright (C) 2026 S.A. (@snoware) (¬‿¬)

## 贡献 (•̀ᴗ•́)و


欢迎提交 Issue 和 Pull Request 来改进项目。

## 注意事项 (¬‿¬)


- 请妥善保管您的API密钥,不要将其泄露给他人
- 遵循百度翻译API的使用频率限制
- 项目仅供学习和技术交流使用