Project1

标题: 如何给游戏增加切换语言的选项? [打印本页]

作者: allrobot    时间: 2024-4-4 12:39
标题: 如何给游戏增加切换语言的选项?
制作了一些个人向的游戏,希望能增加多语言支持,我找到了这个 https://dk-plugins.ru/mv/system/localization/

但是要修改创建{name}之类的,挺麻烦

我将使用SExtract提取MV游戏的一些文本到
  1. json {Original Text: ""}
复制代码
格式,能使用GalTransl或AiNiee翻译成俄文、英文等语言

然后通过SExtract注入到new文件夹生成一些新的译文.json,把译文.json移到en_data、ru_data文件夹

看了DLsite有些官中游戏特意创建了data_cn文件夹





看了插件目录,一个个都不认识:


请问有哪些插件能支持切换语言,至少能切en_data、ru_data文件夹的?


作者: 清澈淌漾    时间: 2024-4-4 14:36
路径data_xx
xx是一个变量控制
切换后重新读一下目录
大概就这样
作者: 505681468    时间: 2024-4-4 17:01
方法一(2L说的):切换数据目录
好处是处理方便,坏处是数据冗余

option window 做多一个窗口设置变量,datamanager 读取对应目录数据
  1. DataManager.loadDataFile = function(name, src) {
  2.     var xhr = new XMLHttpRequest();
  3.     var url = 'data/' + src;
  4.     xhr.open('GET', url);
  5.     xhr.overrideMimeType('application/json');
  6.     xhr.onload = function() {
  7.         if (xhr.status < 400) {
  8.             window[name] = JSON.parse(xhr.responseText);
  9.             DataManager.onLoad(window[name]);
  10.         }
  11.     };
  12.     xhr.onerror = this._mapLoader || function() {
  13.         DataManager._errorUrl = DataManager._errorUrl || url;
  14.     };
  15.     window[name] = null;
  16.     xhr.send();
  17. };
复制代码


方法二:所有显示文本的地方,通过方法读取对应翻译文本
好处是数据量小,坏处是处理麻烦,需要项目建立前期就要有规划,和熟悉引擎

所以一般来说,方法一就是最好的
作者: 雷影    时间: 2024-4-4 19:07
https://www.bilibili.com/video/B ... 707bcc8d700e8b821ae

这个也许可以参考看看
作者: 505681468    时间: 2024-4-4 19:30
雷影 发表于 2024-4-4 19:07
https://www.bilibili.com/video/BV1Qv4y1B7dt/?spm_id_from=333.337.search-card.all.click&vd_source=0f7 ...

哦哦,这个就是楼主说的找到的那个
作者: allrobot    时间: 2024-4-6 16:16
本帖最后由 allrobot 于 2024-4-7 17:49 编辑
雷影 发表于 2024-4-4 19:07
https://www.bilibili.com/video/B ... k&vd_source=0f7 ...


不知道为啥对话框加上{}没法翻译,还有带脚本的选项也无法翻译,例如{厕所(穿越)if(v[86]>0)}无法翻译成toilet(Cross),最新的插件无法应用到目前的mv版本,只能用你提供的bilibili旧版本的插件才会显示切换多语言按钮

编辑,是我搞错了,下的是MZ版本的DKTools 1.3.6,所以无法正常工作
作者: allrobot    时间: 2024-4-6 16:23
本帖最后由 allrobot 于 2024-4-7 17:51 编辑
505681468 发表于 2024-4-4 17:01
方法一(2L说的):切换数据目录
好处是处理方便,坏处是数据冗余


方法二应该是那脚本了,不知道怎么弄,{xx\nxxx}文本没有正确翻译,实际测试中,一行文本则一个{},不能包含\n,两个{}之间算是换行了

https://github.com/allrobot/Tran ... 取T++的CSV为JSON
写了转换用的脚本,顾名思义,如果Translator++汉化差不多了(可以使用AiNiee进行AI翻译),测试中一切正常没出BUG,接下来T++导出为CSV文件,使用转换脚本生成locales所需的zh.json和满屏{原文xxx}

但个人显然不会去用它,插件似乎没法让{厕所(穿越)if(v【86】>0)}里面的变量正常工作,原文需要更改成{厕所(穿越)},才会显示成toilet(Cross),{「xxx\nxxx」}必须写成{「xxx}{xxx」}翻译才会生效

写起来太麻烦

方法一看不明白,说的是js/rpg_windows.js文件吗,是要我创建一个按钮,如二楼所言创建按钮切换data读取的目录数据?我研究研究

js很少用到,并不是很懂你给的js代码(编辑,论坛无法识别表情符号,给转换成????)
作者: 505681468    时间: 2024-4-6 20:00
allrobot 发表于 2024-4-6 16:23
方法二应该是那脚本了,不知道怎么弄,{xx\nxxx}文本没有正确翻译

方法一看不明白,说的是js/rpg_window ...

类似于这样


KSystem_Data_Reload.rar (1.89 KB, 下载次数: 7)




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1