Closed allrobot closed 8 months ago
Python版本问题,需要使用3.9及以上版本,不然语法上不支持。
推荐是3.11。
如果一定要使用低版本python则需要把报错位置的变量注释都删掉,比如var:ParseVar
改成var
。
Python版本问题,需要使用3.9及以上版本,不然语法上不支持。 推荐是3.11
建议新增python3.11说明
不太懂咋写入
PHAM!社团的dpm文件,拆解出一堆格式Shift-JIS的txt文件,提取文本到xlsx后,xlsx也汉化完了,不知道咋注入
按说明把transDic.output.xlsx改名transDic.json,不知道对不对,说明写的不够详细
点击提取/写入
就报错:UnicodeEncodeError: 'cp932' codec can't encode character '\u65f6' in position 0: illegal multibyte sequence
设置勾选了替换译文,但看起来似乎没有注入,只是单纯的再一次提取新建了transDic.output.xlsx文件(吐槽一下,为啥就不能把提取和注入分为两个按钮呢)
除了剧情汉化文本要GBK格式的,其它的字都是代码,由于存在日文变量不能动,如果snr0.txt等文件以GBK保存游戏读取会出错
示例文件:snr0.txt
具体怎么写入呢?
TXT是纯文本,原本如果是cp932是无法写入GBK的,纯文本文件自身不支持编码之外的字符,无法进行保存。
引擎要选BIN,默认是读cp932写GBK,不会改动到提取之外的文本。最好是勾选BIN启用纯文本正则模式
。
其他设置都不用变,正则和TXT引擎下是一致的。
设置勾选了替换译文,但看起来似乎没有注入,只是单纯的再一次提取新建了transDic.output.xlsx文件(吐槽一下,为啥就不能把提取和注入分为两个按钮呢)
因为导入的时候本来就会重新提取一次,不然感知不到文件结构,重新生成的输出文档不用管它,不影响导入。
译文替换是指text_conf.json
配置的trans_replace
功能,和能不能注入无关。
按说明把transDic.output.xlsx改名transDic.json,不知道对不对,说明写的不够详细
提取和导入的格式一致,transDic.output.xlsx改成transDic.xlsx就行。
TXT是纯文本,原本如果是cp932是无法写入GBK的,纯文本文件自身不支持编码之外的字符,无法进行保存。 引擎要选BIN,默认是读cp932写GBK,不会改动到提取之外的文本。勾选
BIN启用纯文本正则模式
。
感谢指点,主程序总算能正常读取了
游戏程序:https://pixeldrain.com/u/Y5owHxqi
其中的scenario - 原版
是解压出来的
通过olldbg修改主程序的CreateFontIndireA的x80为86,能显示一部分中文,但有些字符显示为乱码,请问怎么解决?
因为有些剧情文本是…
这样的标点符号就没有提取,结果识别为乱码了😂
亂嫗夘亃
乽唔~~~啊乿
图中的那些乱码,实际是:
【京介】
「唔~~~啊」
只有唔~~~啊
是GBK编码,这些带shift-JIS都要提取,感觉会累,如何修改能使主程序同时显示日文和中文?
实在不行,就老老实实提取名字和日文编码的符号了
尝试把「」『』【】这些都写进去,为什么匹配成这样?不仅匹配「」『』【】,也匹配里面的字符串了,这是要怎么写避免匹配重复项?
正则表达式:
000_skip=^[@\d・;a-zA-z](.*?)$
90_search=^(?P<name>【.+?】)
91_search=^(?P<msg>『([^』]*)』)
97_search=^(?P<msg>「([^」]*)」)
100_search=^(?!「『【)(?P<msg>(.*?))$
我用notepad++手动替换new
目录下的txt文件
乧=…
乽乿亀亁亂亃=「」『』【】
等等就解决了
游戏能正常显示了
只有
唔~~~啊
是GBK编码,这些带shift-JIS都要提取,感觉会累,如何修改能使主程序同时显示日文和中文?
你是不想翻译这个符号的话也要提取出来,因为要转符号编码到GBK。如果一定要过滤的话可以通过二次提取JSON再过滤掉。 字符是字符,编码是编码。 不存在同一句话同时显示不同编码的文本,krkr都做不到,除非是你有游戏的源代码。
000_skip=^[@\d・;a-zA-z](.*?)$ 90_search=^(?P<name>【.+?】) 91_search=^(?P<msg>『([^』]*)』) 97_search=^(?P<msg>「([^」]*)」) 100_search=^(?!「『【)(?P<msg>(.*?))$
91和97里边嵌套了捕获分组所以重复了,你把里边的捕获分组的()删掉就行。
91和97里边嵌套了捕获分组所以重复了,你把里边的捕获分组的()删掉就行。
编辑,抱歉,是我正则表达式学艺不精
你是说要重复利用分组吗?那直接使用正则的非捕获分组就行啊?和分组名没有关系。
其实也不是非要精准匹配每个字符的。 假设在你这个文本里,除了选项其他没有以数字开头的,且选项中文本在行尾。那么可以直接:
20_search=^\d.+,([^,]+?)$
不需要管里边有多少个逗号,反正只需要最后一个
你是说要重复利用分组吗?那直接使用正则的非捕获分组就行啊?和分组名没有关系。
我不太会正则表达式,不知道怎么匹配
例如“200,180,0,きり11,0,0,桐乃の部屋へ直接注意しに行く”,用正则表达式表示:^\d+,\d+,\d+,[^,]+,\d+,\d+,([^,]+)$
,用[^,]+
期望仅匹配“桐乃の部屋へ直接注意しに行く”
如果有python的re.match(pattern, text).group
指定捕获组就好了,在这个软件只能使用正则表达式
我试试20_search=^\d.+,([^,]+?)$
编辑,上面的不太行
网上查了下,反向正向肯定否定预查能行,(?<=\d,\d,)[日文字符编码范围]+$
平常不怎么用肯定和否定预查😂,这时候也只能学习学习了
挑的MV游戏目录下的www/data文件夹,使用预配的MV规则,结果报错TypeError: 'type' object is not subscriptable