xd2333 / GalTransl

支持GPT-3.5/GPT-4/Newbing/Sakura等大语言模型的Galgame自动化翻译解决方案 Automated translation solution for visual novels supporting GPT-3.5/GPT-4/Newbing/Sakura
GNU General Public License v3.0
1.24k stars 72 forks source link

关于译后问题修复的建议 #98

Open jeshs opened 6 months ago

jeshs commented 6 months ago

使用的版本:5.0.1

问题描述 1)retranslKey只支持配置一个问题,不方便一次修复多个问题 建议:支持配置多个问题,例如:retranslKey: "丢失换行 残留日文 多加换行"

2)修复翻译问题结束时,在控制台没有显示成功多少,失败多少,需要重新运行一次,查看行数数量才能知道剩余有问题的行数 建议:控制台增加统计展示,例如:当前正在执行第几行,共几行,成功几行,失败几行

3)retranslKey填入“字典使用”不行,需要填“GPT字典” 建议:输出的 cache 文件的 problem 、YAML 中配置 problemList 的问题、retranslKey 配置的问题,这三者应该完全统一和对应。 例如问题:在 YAML中配置 arinashiDict ,检测到问题时,在 problem 值为:"本有 ミラ 译无 米拉",更好的做法是:"arinashiDict: 本有 ミラ 译无 米拉" 例如问题:YAML 文件配置 problemList 为“字典使用”, cache 文件的 problem 的值为 "GPT字典 お互い -> 彼此/相互 未使用",然后将 retranslKey 值设置为“字典使用”尝试修复问题,不会生效,需要将 retranslKey 设置为 “GPT字典”,才会生效 此外,除了上面说的统一的问题,在问题分类方面可以考虑二级问题对问题进行细分,例如类似“字典使用-GPT字典”、“字典使用-译前字典”、“字典使用-译后字典”等

4)修复翻译问题失败后,也会写入 在修复翻译问题时,可能出现问题仍然没有解决,此时要将新的译文写入吗,值得考虑。因为第一轮翻译通常会使用上下文,而问题修复时不会使用(即 gpt.numPerRequestTranslate 设置为 1),这就意味着第一轮翻译的质量往往更高,在没有修复问题的情况下,我认为不应该写入,而应该保留之前的译文

jeshs commented 5 months ago

4)关于第4点我遗漏了多个问题的情况 配置部分问题:假设翻译后的一行有A和B两个问题,配置问题A,希望修复A问题,会出现以下多种情况 1 A问题已修复、B问题已修复 2 A问题未修复、B问题未修复 3 A问题已修复、B问题未修复 4 A问题未修复、B问题已修复 配置全部问题:假设翻译后的一行有A和B两个问题,配置问题A和B,希望修复A和B,会出现以下多种情况 1 修复了全部问题 2 只修复了A或者B 3 所有问题都没有修复 此外,修复的时候,可能会产生新的问题

对于这些复杂的情况,我想了想,可能遵循用户的配置更好,也就是说,修复了用户指定的问题(至少修复了1个)就算成功并写入,即使修复时产生了其它新的问题也不需要管,否则会变得很复杂