1287377.gif

阿吉甘梅

GF  2023-06-07 17:17
(如果炸了请pm)

老哥们,Claude跑出来的翻译文本自动给我换行了,这种咋批量处理啊

比如原文是

{"Address":xxxxx,"MaxLength":xxxxx,"Operation":xxxxx}
「日文日文\n日文日文日文日文日\n文日文日文日文日文日文」

Claude跑出来后是
{"Address":xxxxx,"MaxLength":xxxxx,"Operation":xxxxx}
「译文译文,
译文译文译文译文,
译文译文译文译文」

就算我给他规定了回复规则译文不允许换行,不识别\n,又用脚本设置每隔段时间提醒一次,但架不住文本太多,对话时间一长时不时就开始抽风了。最后导致有四分之一的文本是这样乱的,怎么批量处理成原文的格式

1787064.jpg

injustice1

B1F  2023-07-15 21:34
([sell=0,money] [/sell])
上面的回答基本上没有有用的

首先需要知道,日语的断句(体现为换行)和中文的断句位置是不一样的,这是语法问题。所以机翻前直接把换行符全删掉就行了,也就是把\\n全部替换为空字符串,大部分文本编辑器都有这个功能,比如notepad。

如果翻译完才发现这个问题,一个简单的while循环也能解决。楼上那个脚本一眼ai写的,能把例子判定为待处理文本也是绝了。
复制代码
  1.     i = 0
  2.     while i < len(lines):
  3.         line = lines[i].strip()
  4.         if line.endswith(','):
  5.             next_line = lines[i + 1].strip() if i + 1 < len(lines) else ''
  6.             result.append(line.rstrip(',') + next_line)  
  7.         else:
  8.             result.append(line)
  9.             i += 1

检测每一行是否以逗号结尾,如果是,取消换行并删除逗号,然后继续检测本行;如果不是则检测下一行。
脚本其它部分自行补充。