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,又用脚本设置每隔段时间提醒一次,但架不住文本太多,对话时间一长时不时就开始抽风了。最后导致有四分之一的文本是这样乱的,怎么批量处理成原文的格式

none.gif

youyudexiaba

你可以试试事先处理原文,把\n都替换成空符

7e8223984432c5f1.jpg

RyuZU

text = '''
{"Address":xxxxx,"MaxLength":xxxxx,"Operation":xxxxx}
「译文译文,
译文译文译文译文,
译文译文译文译文」
{"Address":xxxxx,"MaxLength":xxxxx,"Operation":xxxxx}
「译文译文,
译文译文译文译文,
译文译文译文译文」
{"Address":xxxxx,"MaxLength":xxxxx,"Operation":xxxxx}
「译文译文,
译文译文译文译文,
译文译文译文译文」
'''

replaced_text = ""
lines = text.split('\n')  # 将文本按行分割成列表

for line in lines:
    if line.startswith("「"):  # 判断是否为需要替换的文本行
        replaced_line = line.replace("\n", "\n")
        replaced_text += replaced_line + "\n"
    else:
        replaced_text += line + "\n"

print(replaced_text)

1355725.jpg

撸树

B3F  2023-06-07 19:14
(其实这话我本没说过,只是说是我说的人多了,也就变成了我说的)
逗号换行 替换成 逗号反斜杠n
用高级点的文本编辑器

91919


720043.jpg

低调做人

B5F  2023-06-07 22:30
(低调低调)
帮顶

1287377.gif

阿吉甘梅

B6F  2023-06-08 09:01
(如果炸了请pm)

回 2楼(RyuZU) 的帖子

老哥 我试了这个脚本,并没有效果,实际上并不是只有这一种格式,译文行分为 [译文译文译文]这种带括号的和不带括号的,两者都有

1287377.gif

阿吉甘梅

B7F  2023-06-08 09:14
(如果炸了请pm)

回 3楼(撸树) 的帖子

感谢老哥回复,实际上并不是只有逗号换行这一种情况,我再看看,不行只能加多条规则了

1287377.gif

阿吉甘梅

B8F  2023-06-08 09:14
(如果炸了请pm)

回 2楼(RyuZU) 的帖子

我再研究研究,感谢老哥回复

none.gif

人间出奇才

老哥怎么绕过限制的啊

1287377.gif

阿吉甘梅

B10F  2023-06-08 15:38
(如果炸了请pm)

回 9楼(人间出奇才) 的帖子

直接给定他身份,我给的是r18翻译员,让他翻译模仿这些作品就行。你得对几次话就得跟他再说一下,要不一会儿他就忘了自己的身份了,模板你搜搜站里大佬写的帖子

1530120.jpg

wslbw4396

B11F  2023-06-10 08:42
(喜欢真剣系列的可以私信)
有的游戏直接删除换行符也没啥影响,也可以在翻译君用正则提取一份干净的原文丢去翻译后再插回来。

单纯解决你这种情况可以试试[^\w}」]+(?=\n)\n替换成\\n

1358012.jpg

今夕是何年

B12F  2023-06-25 17:52
(你想知道生命的意义吗)
我是试着给翻译结果加个检测,如果\n数量和原文本数量对不上,就删除全部\n然后把文本均分,添加进原文本数量的\n,效果就是游戏的断句可能会很奇怪,但是还算能接受。或者换种思路,译前把\n换成绝对会翻译保存的符号,然后在替换回来

1411042.jpg

lich27

B13F  2023-07-14 02:54
(慕微凉)

回 10楼(阿吉甘梅) 的帖子

老哥没找到那个帖子能指个路吗

1787064.jpg

injustice1

B14F  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

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