File Name Translator (FNT)
一个强大的命令行工具,用于将文件名从中文、数字或其他复杂格式自动翻译为标准英文名称。
✨ 特性
- 🌏 智能翻译: 支持中文到英文的智能翻译
- 🔢 数字转换: 将数字转换为对应的英文单词
- 📁 批量处理: 支持递归处理整个目录结构
- 🛡️ 安全检查: 内置安全机制,防止误操作系统文件
- 🔍 预览模式: 在实际执行前预览所有变更
- 💾 备份功能: 可选择在重命名前创建备份
- ⚡ 高性能: 异步处理,支持大量文件
- 🎯 灵活过滤: 支持包含/排除模式
- 📊 详细统计: 提供处理结果统计信息
🚀 安装
全局安装 (推荐)
npm install -g file-name-translator
本地安装
npm install file-name-translator
📖 使用方法
基本用法
# 翻译当前目录下的所有文件
fnt translate
# 翻译指定目录
fnt translate -d /path/to/directory
# 递归处理子目录
fnt translate -r
# 预览模式(不实际重命名)
fnt translate --dry-run
高级用法
# 交互模式,逐个确认
fnt translate -i
# 创建备份
fnt translate --backup
# 排除特定文件类型
fnt translate --exclude "*.log" "*.tmp"
# 只包含特定文件类型
fnt translate --include "*.txt" "*.md"
# 限制递归深度
fnt translate -r --max-depth 3
# 详细输出
fnt translate -v
# 强制执行(跳过确认)
fnt translate -f
预览功能
# 仅预览翻译结果
fnt preview
# 预览指定目录
fnt preview -d /path/to/directory
配置管理
# 配置翻译服务
fnt config
📋 命令选项
translate
命令
选项 | 简写 | 描述 | 默认值 |
---|---|---|---|
--directory <path> |
-d |
目标目录 | 当前目录 |
--recursive |
-r |
递归处理子目录 | false |
--dry-run |
预览模式,不实际重命名 | false | |
--force |
-f |
跳过确认提示 | false |
--exclude <patterns...> |
排除模式(支持glob) | ||
--include <patterns...> |
包含模式(支持glob) | ||
--backup |
重命名前创建备份 | false | |
--max-depth <number> |
最大递归深度 | 10 | |
--interactive |
-i |
交互模式 | false |
--verbose |
-v |
详细输出 | false |
🎯 翻译规则
中文翻译
工具内置了常用中文词汇的英文对应关系:
文档
→document
图片
→image
项目
→project
数据
→data
配置
→config
- 更多...
对于未预定义的中文,会使用拼音转换。
数字转换
1
→one
2
→two
20
→twenty
100
→one-hundred
格式化规则
- 统一使用小写
- 用连字符 (
-
) 替换空格和特殊字符 - 移除不安全的文件名字符
- 确保文件名符合跨平台兼容性
🛡️ 安全特性
系统目录保护
工具会自动识别并拒绝操作以下目录:
- Windows:
C:\Windows
,C:\Program Files
等 - macOS:
/System
,/Library
,/Applications
等 - Linux:
/usr
,/bin
,/etc
等
冲突检测
- 检测重命名后的文件名冲突
- 验证目标文件是否已存在
- 确保有足够的磁盘空间和权限
备份机制
使用 --backup
选项时,工具会:
- 在目标目录创建带时间戳的备份文件夹
- 复制所有即将重命名的文件
- 确保备份成功后才开始重命名
📊 使用示例
示例 1: 基本文件重命名
$ ls
我的文档.txt 照片1.jpg 项目数据.xlsx
$ fnt translate
🚀 File Name Translator Started
Found 3 files that may need translation
📋 Translation Preview:
1. 我的文档.txt → my-document.txt
2. 照片1.jpg → photo-one.jpg
3. 项目数据.xlsx → project-data.xlsx
✅ Rename 3 files? (Y/n) y
🎉 Translation completed!
✅ Successfully renamed: 3 files
示例 2: 递归处理项目目录
$ fnt translate -r -d ./我的项目 --backup -v
📊 Statistics:
Total files processed: 45
Successfully renamed: 42
Conflicts resolved: 2
Backup created: ./我的项目/.fnt-backup-1640995200000
示例 3: 预览模式
$ fnt preview -r
📋 Translation Preview:
1. 设计文档/界面设计.psd → design-document/interface-design.psd
2. 代码/主程序.js → code/main-program.js
3. 测试/单元测试1.js → test/unit-test-one.js
🔍 Dry run completed. No files were actually renamed.
⚙️ 配置文件
工具支持配置文件 ~/.fnt-config.json
:
{
"translationService": "Built-in",
"defaultOptions": {
"recursive": true,
"backup": true,
"verbose": false
},
"customMappings": {
"我的": "my",
"新建": "new"
}
}
🔧 开发
项目结构
file-name-translator/
├── src/
│ ├── index.ts # 主入口
│ ├── translator.ts # 翻译核心
│ ├── scanner.ts # 文件扫描
│ ├── safety.ts # 安全检查
│ └── logger.ts # 日志工具
├── bin/
│ └── fnt.js # 可执行入口
├── lib/ # 编译输出
├── package.json
└── tsconfig.json
📝 更新日志
v1.0.0
- 初始发布
- 支持中文到英文翻译
- 支持数字到英文单词转换
- 内置安全检查机制
- 支持批量处理和递归操作
- 预览和备份功能
📄 许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。