Responsive image

阿吉甘梅 - 2023-06-07 17:17 [GF]
比如原文是

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

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

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


youyudexiaba - 2023-06-07 18:40 [B1F]
你可以试试事先处理原文,把\n都替换成空符


RyuZU - 2023-06-07 19:06 [B2F]
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)


撸树 - 2023-06-07 19:14 [B3F]
逗号换行 替换成 逗号反斜杠n
用高级点的文本编辑器


91919 - 2023-06-07 22:22 [B4F]


低调做人 - 2023-06-07 22:30 [B5F]
帮顶


阿吉甘梅 - 2023-06-08 09:01 [B6F]
老哥 我试了这个脚本,并没有效果,实际上并不是只有这一种格式,译文行分为 [译文译文译文]这种带括号的和不带括号的,两者都有


阿吉甘梅 - 2023-06-08 09:14 [B7F]
感谢老哥回复,实际上并不是只有逗号换行这一种情况,我再看看,不行只能加多条规则了


阿吉甘梅 - 2023-06-08 09:14 [B8F]
我再研究研究,感谢老哥回复


人间出奇才 - 2023-06-08 13:56 [B9F]
老哥怎么绕过限制的啊


阿吉甘梅 - 2023-06-08 15:38 [B10F]
直接给定他身份,我给的是r18翻译员,让他翻译模仿这些作品就行。你得对几次话就得跟他再说一下,要不一会儿他就忘了自己的身份了,模板你搜搜站里大佬写的帖子


wslbw4396 - 2023-06-10 08:42 [B11F]
有的游戏直接删除换行符也没啥影响,也可以在翻译君用正则提取一份干净的原文丢去翻译后再插回来。

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


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


lich27 - 2023-07-14 02:54 [B13F]
老哥没找到那个帖子能指个路吗


injustice1 - 2023-07-15 21:34 [B14F]
上面的回答基本上没有有用的

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

如果翻译完才发现这个问题,一个简单的while循环也能解决。楼上那个脚本一眼ai写的,能把例子判定为待处理文本也是绝了。
复制代码
  1.     i = 0
        while i < len(lines):
            line = lines.strip()

            if line.endswith(','):
                next_line = lines[i + 1].strip() if i + 1 < len(lines) else ''
                result.append(line.rstrip(',') + next_line)  
            else:
                result.append(line)
                i += 1

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






桌面版


Powered by SP Project v1.0 © 2010-2019
Time 0.001589 second(s),query:3 Gzip enabled


Top