-
Notifications
You must be signed in to change notification settings - Fork 84
CodeSaver
neavo edited this page Dec 5, 2024
·
3 revisions
- 通过
角色代码还原
与代码段的替换与还原
,尽可能的保留文本中混杂的代码段
- 在
RPGMaker MV/MZ
游戏中,角色姓名往往不直接使用明文,而是使用类似\nn[1]
形式的角色代码,例如:
あれは、\NN[1]さん…… -> あれは、小夜月さん……
- 将角色代码还原回明文可以
显著的提升翻译与代码保留的效果
,请不要跳过该步骤
- 在进行翻译时,插件将在
输入文件夹
内寻找Actors.json
文件
# 假设输入路径是:
.\input\
# 文件位置:
.\input\Actors.json
- 如果找到
Actors.json
,则会自动使用其中的数据执行角色代码还原
步骤 -
Actors.json
一般在RPGMaker MV/MZ
游戏目录的data
或者www\data
文件夹内 - 插件只会使用
Actors.json
内的以下数据字段,你也可以手动创建文件来提供数据:
[
{
"id": 1,
"name": "静叶", // 用于还原 \n[1]
"nickname": "小夜月", // 用于还原 \nn[1]
},
]
- 在开始翻以前,插件会检查内置的代码段规则
- 如果找到匹配的代码段,则统一采用
↓↓
对其进行替换,并在翻译完成后进行还原 - 翻译过程中,占位符可能会丢失或者错位,这会导致对代码段的还原失败
- 这些失败的条目将写入
输出文件夹\代码救星_结果_*.json
文件,请在翻译完成后检查并修正这些错误的条目 - 目前插件内置规则主要为
RPGMaker
引擎中常见代码,具体如下:
# 用于英文的代码段规则
CODE_PATTERN_EN = (
SPACE_PATTERN + r"if\(.{0,5}[vs]\[\d+\].{0,10}\)" + SPACE_PATTERN, # if(!s[982]) if(s[1623]) if(v[982] >= 1)
SPACE_PATTERN + r"en\(.{0,5}[vs]\[\d+\].{0,10}\)" + SPACE_PATTERN, # en(!s[982]) en(v[982] >= 1)
SPACE_PATTERN + r"[/\\][a-z]{1,5}<[\d]{0,10}>" + SPACE_PATTERN, # /C<1> \FS<12>
SPACE_PATTERN + r"[/\\][a-z]{1,5}\[[\d]{0,10}\]" + SPACE_PATTERN, # /C[1] \FS[12]
SPACE_PATTERN + r"[/\\][a-z]{1,5}(?=<.{0,10}>)" + SPACE_PATTERN, # /C<非数字> /C<非数字> \FS<非数字> \FS<非数字> 中的前半部分
SPACE_PATTERN + r"[/\\][a-z]{1,5}(?=\[.{0,10}\])" + SPACE_PATTERN, # /C[非数字] /C[非数字] \FS[非数字] \FS[非数字] 中的前半部分
)
# 用于非英文的代码段规则
CODE_PATTERN_NON_EN = (
SPACE_PATTERN + r"if\(.{0,5}[vs]\[\d+\].{0,10}\)" + SPACE_PATTERN, # if(!s[982]) if(v[982] >= 1)
SPACE_PATTERN + r"en\(.{0,5}[vs]\[\d+\].{0,10}\)" + SPACE_PATTERN, # en(!s[982]) en(v[982] >= 1)
SPACE_PATTERN + r"[/\\][a-z]{1,5}<[a-z\d]{0,10}>" + SPACE_PATTERN, # /C<y> /C<1> \FS<xy> \FS<12>
SPACE_PATTERN + r"[/\\][a-z]{1,5}\[[a-z\d]{0,10}\]" + SPACE_PATTERN, # /C[x] /C[1] \FS[xy] \FS[12]
SPACE_PATTERN + r"[/\\][a-z]{1,5}(?=<.{0,10}>)" + SPACE_PATTERN, # /C<非数字非字母> /C<非数字非字母> \FS<非数字非字母> \FS<非数字非字母> 中的前半部分
SPACE_PATTERN + r"[/\\][a-z]{1,5}(?=\[.{0,10}\])" + SPACE_PATTERN, # /C[非数字非字母] /C[非数字非字母] \FS[非数字非字母] \FS[非数字非字母] 中的前半部分
)
# 同时作用于英文于非英文的代码段规则
CODE_PATTERN_COMMON = (
SPACE_PATTERN + r"\\fr" + SPACE_PATTERN, # 重置文本的改变
SPACE_PATTERN + r"\\fb" + SPACE_PATTERN, # 加粗
SPACE_PATTERN + r"\\fi" + SPACE_PATTERN, # 倾斜
SPACE_PATTERN + r"\\\{" + SPACE_PATTERN, # 放大字体 \{
SPACE_PATTERN + r"\\\}" + SPACE_PATTERN, # 缩小字体 \}
SPACE_PATTERN + r"\\g" + SPACE_PATTERN, # 显示货币 \G
SPACE_PATTERN + r"\\\$" + SPACE_PATTERN, # 打开金币框 \$
SPACE_PATTERN + r"\\\." + SPACE_PATTERN, # 等待0.25秒 \.
SPACE_PATTERN + r"\\\|" + SPACE_PATTERN, # 等待1秒 \|
SPACE_PATTERN + r"\\!" + SPACE_PATTERN, # 等待按钮按下 \!
SPACE_PATTERN + r"\\>" + SPACE_PATTERN, # 在同一行显示文字 \>
SPACE_PATTERN + r"\\\^" + SPACE_PATTERN, # 显示文本后不需要等待 \^
SPACE_PATTERN + r"\r\n" + SPACE_PATTERN, # 换行符 \r\n
SPACE_PATTERN + r"\n" + SPACE_PATTERN, # 换行符 \n
SPACE_PATTERN + r"\\\\<br>" + SPACE_PATTERN, # 换行符 \\<br>
SPACE_PATTERN + r"<br>" + SPACE_PATTERN, # 换行符 <br>
)
- 你可以通过编辑
Plugin_Scripts\CodeSaver\CodeSaver.py
文件来添加其他的代码规则