这是一个使用 Go 语言和 tview 开发的中英文词典应用程序。
- ✅ 英文到中文翻译
- ✅ 中文到英文翻译
- ✅ 实时搜索与智能匹配
- ✅ 自动显示第一个匹配结果
- ✅ 5秒后自动切换到列表浏览
- ✅ 搜索历史记录(最多20条)
- ✅ 随机单词推荐
- ✅ 详细的单词信息显示(音标、释义等)
- ✅ 基于 SQLite 的本地数据库
- ✅ 跨平台支持(Windows、Linux、macOS)
- ✅ 终端界面(TUI)- 无需GUI环境
- ✅ 完善的键盘导航
- ✅ 首次运行自动初始化数据库
下载 Release 里面的对应操作系统的压缩包,解压后双击 dict 即可运行。
首次运行说明:
- 程序会自动检测数据库文件是否存在
- 如果不存在,会自动解压
ecdict.csv.gz并生成数据库(需要1-2分钟) - 后续运行会直接加载数据库,启动速度很快(<1秒)
dict/
├── main.go # 主程序(包含TUI界面和自动初始化逻辑)
├── converter.go # 数据库转换模块(被main.go调用)
├── ecdict.csv.gz # ECDICT词典数据压缩包
├── go.mod # Go 模块依赖
├── go.sum # 依赖校验
├── english_chinese.db # 英文-中文数据库(首次运行后自动生成)
├── chinese_english.db # 中文-英文数据库(首次运行后自动生成)
└── README.md # 说明文档
- 下载对应系统的压缩包,解压即可
- 终端支持(支持彩色显示的终端)
- ecdict.csv.gz 文件(已包含在发布包中)
- Go 1.18 或更高版本
- 终端支持(支持彩色显示的终端)
- ecdict.csv.gz 文件
- Linux/macOS: 自带终端即可
- Windows: 建议使用 Windows Terminal、PowerShell 或 Git Bash
- 不需要GUI环境,可以在SSH远程连接中使用
-
下载发布包
- 访问 Releases
- 下载对应系统的压缩包(包含
dict可执行文件和ecdict.csv.gz)
-
解压并运行
# Linux/macOS tar -xzf dict-linux-amd64.tar.gz cd dict ./dict # Windows(使用 PowerShell) Expand-Archive dict-windows-amd64.zip cd dict .\dict.exe
-
首次运行
- 程序会自动解压
ecdict.csv.gz - 自动生成
english_chinese.db和chinese_english.db - 整个过程需要 1-2 分钟,请耐心等待
- 程序会自动解压
-
后续使用
- 直接运行
./dict,秒开!
- 直接运行
确保你有以下文件:
main.goconverter.gogo.modecdict.csv.gz(ECDICT词典数据压缩包)
go mod tidy# 直接运行(首次会自动初始化数据库)
go run main.go
# 或者编译后运行
go build -o dict main.go
./dictWindows 用户:
go build -o dict.exe main.go
dict.exe首次运行流程:
- 检查数据库文件是否存在
- 如不存在,自动解压
ecdict.csv.gz→ecdict.csv - 自动调用转换模块生成两个数据库文件
- 加载数据库,启动应用
后续运行:
- 直接加载已有数据库,快速启动
# 编译主程序
go build -o dict main.go
# 运行
./dict方法一:使用 PowerShell 或 CMD
# 编译主程序
go build -o dict.exe main.go
# 运行
.\dict.exe方法二:使用 Git Bash
go build -o dict.exe main.go
./dict.exe# 编译主程序
go build -o dict main.go
# 运行
./dict如果需要在一个平台编译其他平台的可执行文件:
# 在 Linux/macOS 上编译 Windows 版本
GOOS=windows GOARCH=amd64 go build -o dict.exe main.go
# 在 Windows 上编译 Linux 版本(PowerShell)
$env:GOOS="linux"; $env:GOARCH="amd64"; go build -o dict main.go
# 在任意平台编译 macOS 版本
GOOS=darwin GOARCH=amd64 go build -o dict main.go# 创建发布包(包含可执行文件和数据文件)
mkdir dict-release
cp dict dict-release/ # 或 dict.exe
cp ecdict.csv.gz dict-release/
cp README.md dict-release/
# 压缩
tar -czf dict-linux-amd64.tar.gz dict-release/ # Linux/macOS
# 或使用 zip
zip -r dict-windows-amd64.zip dict-release/ # Windows┌─────────────────────────────────────────────────────────────┐
│ 搜索: [输入中文或英文...] │
├──────────────────────┬──────────────────────────────────────┤
│ ┌─ 单词列表 ────────┐│ ┌─ 详细信息 ──────────────────────┐ │
│ │ ││ │ │ │
│ │ like ││ │ 单词: like │ │
│ │ love ││ │ 音标: /laɪk/ │ │
│ │ library ││ │ │ │
│ │ ... ││ │ 英文释义: │ │
│ │ ││ │ • similar to │ │
│ │ ││ │ │ │
│ │ ││ │ 中文释义: │ │
│ │ ││ │ • 喜欢 │ │
│ │ ││ │ • 像 │ │
│ └────────────────────┘│ │ │ │
│ │ │ BNC词频: 25 │ │
│ │ └──────────────────────────────────┘ │
└────────────────────────┴──────────────────────────────────────┘
-
搜索单词
- 直接在搜索框输入英文或中文
- 系统会实时显示匹配的单词列表
- 第一个匹配的单词会自动显示详情
-
浏览列表
- 按
↑↓方向键在列表中上下移动 - 无论焦点在哪里,按方向键都会自动切换到单词列表
- 移动时右侧会实时显示当前单词的详情
- 按
-
点击查看
- 鼠标点击列表中的单词可以查看详情
- 点击的单词会被添加到搜索历史
| 按键 | 功能 |
|---|---|
字母/数字 |
在任何位置按字母,会自动跳转到搜索框并清空 |
↑ ↓ |
在任何位置按上下键,会自动跳转到单词列表 |
Enter |
在搜索框按Enter,跳转到单词列表 |
Tab |
在搜索框、单词列表、详情面板间循环切换 |
Esc |
退出程序 |
鼠标点击 |
可以点击单词列表项或滚动查看详情 |
-
自动选择
- 输入搜索词后,第一个匹配结果会自动选中并显示详情
- 5秒后自动将焦点切换到单词列表,方便浏览
-
搜索历史
- 搜索框为空时,显示最近查询的20个单词
- 历史记录会标注
[灰色]历史:前缀 - 只有以下操作会添加到历史:
- 输入搜索词后等待5秒
- 鼠标点击列表中的单词
-
随机推荐
- 首次启动或清空历史后,会显示20个高频英文单词
- 这些单词来自BNC语料库(词频0-1000)
-
智能排序
- 搜索结果按匹配度排序:
- 完全匹配
- 前缀匹配
- 包含匹配
- 最多显示100个结果
- 搜索结果按匹配度排序:
问题:第一次运行程序需要等待1-2分钟
说明:这是正常的,因为程序需要:
- 解压
ecdict.csv.gz(约30秒) - 生成两个数据库文件(约1-2分钟)
解决:
- 请耐心等待,只需要一次
- 后续运行会直接加载数据库,秒开
问题:运行时提示 "找不到 ecdict.csv.gz 文件"
解决:
# 确保 ecdict.csv.gz 与可执行文件在同一目录
ls -la
# 应该看到:
# dict (或 dict.exe)
# ecdict.csv.gz问题:终端中中文显示为方框或乱码
解决:
# Linux/macOS
export LANG=en_US.UTF-8
# Windows:在终端设置中选择 UTF-8 编码
# 或使用 Windows Terminal(自动支持UTF-8)问题:没有彩色显示
解决:使用现代终端
- Linux: GNOME Terminal, Konsole, Alacritty
- macOS: iTerm2, Terminal.app
- Windows: Windows Terminal(推荐)
欢迎提交 Issue 和 Pull Request!
享受查词的乐趣! 📖

