关于翻译修正的逻辑
-
-
@鬼才琪露诺 刚跟新到最新,【应用至运行中的游戏】这个按钮点完倒是和之前一样了。
但是翻译修正的所有内容似乎没有生效,并没有进行翻译修正

原本翻译是
シュバイン・ラムダ
希瓦恩·兰姆达
按照我写的应该会被翻译成
舒拜因・拉姆达

之后我看了一下,应该是所有的翻译修正都没有执行

我的翻译修正的名字:装脱騎士ニンフォリア Ver1.07
可以在翻译修正里面搜索到
然后我发现,现在的翻译

会把名字和下面说话的内容合行,不知道是GPT本身的原因,还是您在翻译后对原始翻译内容进行了分行处理
整个游戏里面不管是对话还是名字那一行,
经常会出现整体名字被拆开变成两行的情况,然后还会多一些符号在中间。如下图:

这个对应的Mtool日志输出

这个人物的名字原始翻译会有如下的名称:
尼姑芙莉亚 尼姬福利亚 尼姬福莉亚 尼姑罗亚 尼姆福利亚 妮芙莉亚

上图是对话中名字被拆分的情况:尼姆福利亚 被拆分成2行
而且这种情况还找不到很好的方法进行翻译修正,我试图在翻译修正中利用【\n】进行修正但是只能有部分实际上是利用\n的文本才能修正,很多不能修正,这种情况应该怎么处理呢?如果需要什么我配合的提供的咱们继续沟通
-
@鬼才琪露诺
官方地址:
https://www.dlsite.com/maniax/dlaf/=/t/n/link/work/aid/dlwatcher/id/RJ287373.html
游戏名称:装脱騎士ニンフォリア
翻译修正ID: 39748
翻译用的ChatGPT 3.5save_20251109_001649.rar
存档是第16个,因为游戏还没有玩通关,可以在回想房里面看看一部分回想 -
@鬼才琪露诺
如果翻译修正按照从上到下的顺序进行替换的话
假如:

原始日文:戦闘装備
翻译之后:戦闘装備
我增加了如下的翻译修正:

第一行修正的意思就是
B如果行开始后面没有【 (「】三个符号,或者没有【存档】【配件】
C则在行首增加一个【 】
①按照第一行的内容新的翻译会被先替换为 【 戦闘装備】第二行的意思是如果
A原文是【戦闘装備】,
B翻译后的是【 戦闘装備】或者【戦闘装備】
C则替换成【㊣战斗装备】
②按照第二行的内容的翻译会被替换为【㊣战斗装备】但现在实际上没有进行第二行的替换,直接输出了 【 戦闘装備】
所以到底翻译修正的具体替换规则是怎么样的?
按照我的理解当前的两个修正都是满足条件的,应该按照顺序进行替换这个测试的翻译修正ID:40017
游戏内选择任意存档都可以,进入游戏直接按ESC或者X建打开菜单,就能直接看到需要被替换的内容了 -
@鬼才琪露诺
如果翻译修正按照从上到下的顺序进行替换的话
假如:

原始日文:戦闘装備
翻译之后:戦闘装備
我增加了如下的翻译修正:

第一行修正的意思就是
B如果行开始后面没有【 (「】三个符号,或者没有【存档】【配件】
C则在行首增加一个【 】
①按照第一行的内容新的翻译会被先替换为 【 戦闘装備】第二行的意思是如果
A原文是【戦闘装備】,
B翻译后的是【 戦闘装備】或者【戦闘装備】
C则替换成【㊣战斗装备】
②按照第二行的内容的翻译会被替换为【㊣战斗装备】但现在实际上没有进行第二行的替换,直接输出了 【 戦闘装備】
所以到底翻译修正的具体替换规则是怎么样的?
按照我的理解当前的两个修正都是满足条件的,应该按照顺序进行替换这个测试的翻译修正ID:40017
游戏内选择任意存档都可以,进入游戏直接按ESC或者X建打开菜单,就能直接看到需要被替换的内容了@豬愿你安好
没有再复杂的逻辑了....function fixStringWithCollRegexp(str, oriText) { if (collRegxps instanceof Array) { for (let i = 0; i < collRegxps.length; i++) { let ifFindInOri = collRegxps[i][0]; if (ifFindInOri) { ifFindInOri.lastIndex = 0; if (!oriText.match(ifFindInOri)) { continue; } } let count = replaceCounts.get(collRegxps[i][1]) || 0; collRegxps[i][1].lastIndex = 0; let nstr = str.replace(collRegxps[i][1], collRegxps[i][2]); if (nstr !== str) { count++; replaceCounts.set(collRegxps[i][1], count); if (count > 10) { mainTask("alert", `Regex ${collRegxps[i][1]} exceeded 10 replacements in 0.5sec .\nCheck your Translate Fix!!!!!\n正则 ${collRegxps[i][1]} 在0.5秒内被替换超过了 10 次.\n 检查你的翻译修正!!!`); return nstr; } } str = nstr; } } return str; }
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login

