--- title: EasyTranslator emoji: 🏃 colorFrom: gray colorTo: pink sdk: gradio sdk_version: 5.0.2 app_file: app.py pinned: false license: apache-2.0 --- # EasyTranslator v1.1.0 基于gradio的汉化辅助工具 ## 使用 至少需要安装python3(作者使用的版本是3.10, 其它版本尚未测试) *** ### Install ``` git clone https://github.com/alienet1109/EasyTranslator.git ``` 不想安git可以直接下载压缩包 *** ### Preparation #### 1. 安装依赖 ``` pip install -r requirements.txt ``` #### 2. 文本准备 需要使用者自行准备原文本json文件, 或使用本程序将原文本csv文件转换为json文件 \ csv文件格式要求为: * 至少包含人名列、文本列, 按顺序排列的表格 只有文本没有人名也可以使用, 在csv里新建空列'name'即可。\ 若不指定id列名, 程序会自动生成id。 \ 可以指定人名和文本的列名, 将会分别以'name'、'text'为键输入json文件;其它列将会以原列名为键输入, 以防数据丢失。\ 生成json文件后, 下载, 然后输入其路径(不一定要与代码同一文件夹)即可使用。 json文件格式要求为: * 由key为id, value为{'name':'原文人名','text':'原文文本'}的键值对组成, 按文本顺序正序排序的字典。 运行途中会频繁修改json文件, 所以最好做好备份。\ 可以随时在页面中修改json文件路径, 修改前务必保存, 修改后请按Load按钮以同步更新否则不知道会有什么bug。\ 上次编辑文本编号将会重置, 路径与编号将直接更新至config文件。 #### 3. 修改配置文件`config.json` * 必须: 1. 设置文本文件`file_path`及人名词典`name_dict_path`的路径(推荐使用绝对路径)。之后结果会直接保存至对应路径。 * 可选: 1. 设置替换词典`replace_dict_path`路径, 如不使用此功能则不需要; 2. 可设置api key和分隔符等, 也可以直接在程序更改。程序中的修改会改变预设api key, 但不会改变预设的分隔符。 *** ### Run 直接点开`EasyTranslator.py`或在文件夹下执行命令: ``` python EasyTranslator.py ``` 然后在网页中打开程序给出的网址(eg: http://127.0.0.1:7860 )

## v1.1.0更新内容 1. 现支持通常翻译和批量翻译中gemini, claude, qwen, deepseek...等模型的自由选择和调用。请在`config.json`中或API页填写api key (注:当设置了OpenRouter的api时,会优先使用OpenRouter的接口)。使用gemini, claude, doubao等的官方接口请安装相关依赖包。可以自行修改`utils.py`中的MODEL_LIST以调整可选模型,避免冗余。 2. 修改了键盘快捷键设置
alt+w: ↑
alt+x: ↓
alt+s: save json
alt+r: replace
alt+q: model1 translate
alt+e: model2 translate
## v1.0.6更新内容 1. 更新文件合并功能,方便多人协作。在文件合并页中可将依照指示将两个json文件合并,同步人工翻译进度。并支持导出小规模json文件方便传输。 ## v1.0.5更新内容 1. 支持键盘快捷键 ## v1.0.4更新内容 1. 追加摸鱼模式, 将必要组件集中在半个屏幕内。在`config.json`中`moyu_mode`设为1开启, 设为0关闭 2. 加入对GPT翻译的超时检测, 时间上限在`config.json`的`openai_api_settings`中的`time_limit`处设置, 单位为秒。若请求超时, 会打印超时提示, 但不会报错) 3. GPT翻译现在将不返回重复结果 ## v1.0.3更新内容 1. 支持预览页直接修改译文, 建议保存JSON后再使用此功能 2. 可选是否即时更新上次编辑id `config.json`中设置`"if_save_id_immediately"`参数, 若为1则逻辑与之前一样, 在切换id时立刻保存进`config.json`;若为0则会显示保存编辑id按钮`SAVE last edited position`, 在点击后存入`config.json`。 ## v1.0.2更新内容 1. 支持批量机翻 ## v1.0.1更新内容 1. 优化文件读取逻辑 2. 增加错误提示、警告等。保存JSON成功时会提示更新的译文条数 3. 允许自定义传输到gpt的prompt、自定义百度翻译的原文及目标语言 4. 追加上下文预览功能, 并允许自定义预览条数和编号。指定id将会以双星号标记, 修改过的译文将会在前面加星号标记 5. 优化按钮手感 ## 特性 1. 一键机翻接口, 提供复制到剪贴板按钮 2. 便捷的上下句切换, 直接跳转功能 3. 记忆上次编辑位置功能 4. 人名翻译记忆功能, 一次修改将会同步到全体。人名词典在程序启动时读取并在保存JSON文件时保存。开启程序时可以直接改`name_cn`, 关闭程序后可以修改人名词典。下次开启程序时人名词典中的内容将会覆盖JSON文件中的`name_cn`。 5. 文本翻译记忆功能, 机翻/修改后只要不关闭程序, 切换上下句, 刷新 网页都不会影响 6. 译文缓存。相对地原文不会缓存, 所以手滑改或删掉只要切换或者刷新即可恢复。因此想查看原文具体某个词的翻译也可以直接编辑原文再机翻, 不会影响原文本。 7. 一键替换功能, 用于专有名词错译的情况。会将机翻及手翻文本中的对象全部替换。替换词典可以在运行中直接更改, 不用重开程序。 8. 便利的api key管理及prompt修改等 9. 提供JSON文件与CSV文件互转 10. 上下文预览功能

## 演示 摸鱼模式 \ ![image](https://github.com/alienet1109/EasyTranslator/blob/master/assets/moyu_mode.png) \ 批量翻译 \ ![image](https://github.com/alienet1109/EasyTranslator/blob/master/assets/batch_translate.gif) \ 上下文预览\ ![image](https://github.com/alienet1109/EasyTranslator/blob/master/assets/context_preview.gif) ![image](https://github.com/alienet1109/EasyTranslator/blob/master/assets/id%20search.gif) ![image](https://github.com/alienet1109/EasyTranslator/blob/master/assets/name.gif) ![image](https://github.com/alienet1109/EasyTranslator/blob/master/assets/last%26next%20text.gif) ![image](https://github.com/alienet1109/EasyTranslator/blob/master/assets/replace.gif) ![image](https://github.com/alienet1109/EasyTranslator/blob/master/assets/api%20key%20setting.gif) ![image](https://github.com/alienet1109/EasyTranslator/blob/master/assets/derive%20text.gif) ![image](https://github.com/alienet1109/EasyTranslator/blob/master/assets/part_translate.gif) ## 计划追加功能 1. 可选主题 2. 追加翻译接口 3. 追加文本输出格式 4. 发生修改时直接存入小规模临时文件, 防止数据丢失