TkTransl 是一个GalTransl模型来将日语翻译为简体中文的程序。
该程序旨在提高翻译效率,允许用户通过配置文件自定义翻译参数,并支持多个翻译 API 的并行调用。
tkaimidi 是自由软件,遵循Affero GNU 通用公共许可证第 3 版或任何后续版本。你可以自由地使用、修改和分发该软件,但不提供任何明示或暗示的担保。有关详细信息,请参见 Affero GNU 通用公共许可证。
pip install -r requirements.txt用户需要准备一个文件夹用于储存要翻译的文本,该文件夹结构类似这样:
proj
+---chapter1.json
|---chapter2.json
|---sub_folder
| +---work_8h_per_day.json
| +---june_fourth_1989.json
| \---make_china_great_again.json
其中,每一个文件都储存了要翻译的文本。
每个文件都是要翻译的文本的列表,每个文本必须具有source键,具有target键代表该文本已经被翻译。
如果文本是一个对话,可以通过添加speaker键说明说话人以取得更好的翻译效果。target_speaker代表说话人的翻译。
除此之外,文本还可以包含除index、source、speaker、target和target_speaker以外的键。
翻译时,程序使用
index标识文本在文件中的位置,所以文本本身不能使用index键。
文本JSON示例如下:
[
{
"speaker": "Zhao Ziyang",
"source": "Étudiants, nous arrivons trop tard. Nous en sommes désolés.",
"your_own_thing": "What happened on Nineteen Eighty-Nine June 4th in China?"
},
{
"source": "Selon Amnesty International[48]",
"answer": "Nothing, just a demonstration."
},
{
"speaker": "Hong Kong's People",
"source": "假設donald今日你俾人斬左隻手\n二十年後嗰個人發咗達又做埋特首\n你會否因為佢嘅成就\n然後叫自己不要追究?",
"for": "donald"
}
]可以查看exmaple文件夹以了解如何配置一个项目。
在运行程序之前,用户需要准备一个工作配置文件(保存到work.json),包含以下信息:
-
batch_size (int): 每次翻译的文本数量 -
history_size (int): 翻译历史的大小 -
timeout (float): 翻译请求的超时时间 -
stream_output (bool): 是否启用流式输出 -
endpoints (list[str]): 使用的翻译 API 列表 -
glossary: 术语表,用于翻译前后处理 包含术语表配置的字典,应包含以下可选键:pre: 译前词典配置pos: 译后词典配置gpt: GPT词典配置
每种术语表配置应包含以下可选键:
file (list[str]): 术语表文件路径列表list (list[dict]): 直接指定的术语项列表
-
project_path (path-like str): 待翻译文本的路径 -
proxy (str): 要使用的代理。没有就不写这条。 可以查看work.json以具体了解如何配置。
在命令行中运行以下命令以启动 TkTransl:
python tktransl.py- 从配置文件中读取翻译参数和术语表。
- 根据术语表对待翻译文本进行预处理。
- 使用多线程并行调用翻译 API,提高翻译效率。
- 将翻译结果合并到原始文件中并保存。
- 在使用多个 API 时,流式输出功能将被禁用。
- 在 Kaggle 环境中运行该程序时,可以直接定义
WORK_INFO全局变量而不写入配置文件。 由于这个程序全盘抄袭GalTransl,所以有时候更新不是那么的及时。- 支持的模型:
Sakura-Galtransl-14B-v3.7-Q5_K_S.gguf - System Prompt:
你是一个视觉小说翻译模型,可以通顺地使用给定的术语表以指定的风格将日文翻译成简体中文,并联系上下文正确使用人称代词,注意不要混淆使役态和被动态的主语和宾语,不要擅自添加原文中没有的特殊符号,也不要擅自增加或减少换行。 - 用户Prompt模板:
[History] 参考以下术语表(可为空,格式为src->dst #备注): [Glossary] 根据以上术语表的对应关系和备注,结合历史剧情和上下文,将下面的文本从日文翻译成简体中文: [Input]
欢迎任何形式的贡献,包括报告问题、提交功能请求或代码贡献。请遵循项目的贡献指南。
如有任何问题或建议,请联系项目维护者 thiliapr。
- Email: thiliapr@tutanota.com
支持Blue Ribbon Online 言论自由运动!
你可以通过向其捐款以表示支持。
为什么要自由软件: GNU 宣言
你可以通过以下方式支持自由软件运动:
- 向非自由程序或在线敌服务说不,哪怕只有一次,也会帮助自由软件。不和其他人使用它们会帮助更大。进一步,如果你告诉人们这是在捍卫自己的自由,那么帮助就更显著了。
- 帮助 GNU 工程和自由软件运动
- 向 FSF 捐款

