Thekingofglory Posted August 22, 2022 Share Posted August 22, 2022 (edited) 语言包一共分为三大类:普通语言包、搞怪语言包(自定义语言包)和它的分支功能性语言包 语言包是由"string"字符串组成的,总共分为三部分: 例: 开头部分: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <strings is_primary="0" lang="zh" lang_full="简体中文 (Simplified Chinese)" typeface="sc"> "version="1.0"" 声明用的xml版本是1.0. "encoding="UTF-8"" 声明用xml传输数据的时候的字符编码,假如文档里面有中文,编码方式不是UTF-8,传输过去再解码的话中文就会是乱码. "standalong"用来标记是否是一个独立的xml,默认是yes,值 yes 表示这个 XML 文档是自包含的(self-contained). 值是no表示这个XML不是独立的而是依赖于外部所定义的一个DTD. "lang="表示的是编码语言,例如zh简体中文,zh-Hant繁体中文,en英文,es西班牙语等等. "lang_full="是语言的全称,zh就是简体中文 (Simplified Chinese),zh-Hant就是繁體中文 (Traditional Chinese),es就是Español (Spanish)等等. "typeface="是字体的种类,在这里sc是宋体. 中间部分(主要部分): <string id="9">培育屋</string> 中间部分也分为三个部分: 第一部分:<string id="9"> string表示为数据类型,id为变量. 此处意思为 定义一个字符串变量id,并赋值为空字符串. 第二部分:>< 将空字符串赋值,此处是“培育屋”. 第三部分:</string> 表示这一行的结束. 结尾部分: </strings> 表示结束全部字符串. 还有一种与上述不同,但用法基本相似: <?xml version="1.0" encoding="UTF-8" standalone="no"?> (第一部分) <ds_strings_archive archive_type="0" lang="zh" region_id="3"> <string block_id="0" entry_id="0" table_id="1">玩家{00}</string> (第二部分) </ds_strings_archive> (第三部分) 在此不过多赘述. 但是切忌去随意触碰第一部分,第二部分除"><"之外的部分,第三部分. 如果你不懂的话,修改后可能会造成错误. 所以说制作或修改语言包,都是更改的"><"中间的部分. "><"中间的部分你可以填写任意你想填写的东西,标点符号最好为英文标点符号,避免出错. 所以如果你想自定义任何地方所说的话,尝试修改"><"即可. 例: 修改上、下线提示: 原版: <string id="2604">{00}上线了.</string> <string id="2605">{00}下线了.</string> 修改后: <string id="2604">{00}复活了.</string> <string id="2605">{00}去世了.</string> 修改之后,保存,便可以上线测试. 所以以上讲的是搞怪语言包(自定义语言包). 下面来讲功能性语言包: 功能性语言包主要就是速度快,或表示详细. 或有意识的去把某些东西整理整齐. 速度快,主要是借助于"\n"换行符的应用(我将在下文讲更多符). 在对话气泡中,"\n"主要是翻页的作用,比如说PC对话,每换一个气泡,就需要键入一次"\n". 而在对战中,"\n"主要是换行的作用,但是对战界面一次只能换行一次,也就是一页只有两行,如果超过两行,则会在下一页的第一行开头显示,以此类推. 表示详细,例如表示出宝可梦的属性. 就是查找到宝可梦的名字,再在其周围修改. 或者你可以自定义更多的部分,方便理解. 对于这三种语言包,一件重要的事情是:每个地区的编号"regin_id",例: <strings lang="zh" lang_full="简体中文 (Simplified Chinese)" is_primary="0" typeface="sc" is_override="1" region_id="0"> "0"对应的是常规语言包. <?xml version="1.0" encoding="UTF-8" standalone="no"?> <ds_strings_archive archive_type="0" lang="zh" region_id="2"> "2"对应的是合众语言包. <?xml version="1.0" encoding="UTF-8" standalone="no"?> <ds_strings_archive archive_type="0" lang="zh" region_id="3"> "3"对应的是神奥语言包. 就这么多,我将在二楼讲解输出时控制的格式符,以及一些方便编辑的方法. 如有任何错误,请指出. 感谢阅读 🙂 Edited November 29, 2022 by Thekingofglory xingzhiyu, Lie, Pcoookie and 2 others 4 1 Link to comment
Thekingofglory Posted August 22, 2022 Author Share Posted August 22, 2022 (edited) 接下来讲输出时控制的格式符: \n 将光标移动到下一行(称为换行符). \t 将光标移动到下一个制表位(称为制表符), 一个制表位等于8个空格. \r 将光标移动到当前行的开头(称为回车符). \f 将光标移动到下一页(换页符). 这些一般都用来控制输出内容的格式,在输出的时候用. 但在MMO中,只有换行符"\n"起作用,换页符也由它完成. 所以你想达到"极速",在对话框中什么都不说,就可以直接把全部文本替换成一个"\n",这应该是比一个空格要快的. 如果你想做闪光高亮的话,你可以现在语言包外测试,比如说我选择的是游戏公告栏. 因为有些字符在游戏中显示的是"OBJ"乱码,或根本不予显示,所以说找一个合适的字符是重要的. 你可以一行一行来做,一般都是横着做,是把所有的字像打印机一样横向打出来,包括空格的距离,打出后,如果你想换行(也就是回车),键入一个"\n"即可. 替换角色、名称: 所有的名称都是按照{00}、{01}排列的,以此类推. 如果你想改的话,需要在游戏运行到此处时,记住名称的出现顺序,想改成纯文本的时候,删除{00}包括"{}", 改成你想要的即可. 之后来分享一些方便编辑的方法: 首先,在查找的时候,可以使用快捷键"Ctrl+F"呼出"查找",能提高一些效率. 也可以适当使用"复制"、"粘贴":"Ctrl+C"、"Ctrl+V"来提高效率. 比如说你想把很多句话改成"\n",可以复制它("Ctrl+C"),选择其他你想改的话,直接按"Ctrl+V"即可. 如果你想让代码在一页显示更多或更少的话,可以长按"Ctrl"并配合鼠标滚轮,实现放大(向前滚)和缩小(向后滚),触摸板也是如此. 如果你想要打开的更快捷,可以右键单击.xml文件,点击"打开方式(H)",点击"选择其他打开方式",在出现的窗口中单击你的应用,我这里是"记事本",在下方勾选"始终使用此应用打开.xml文件"即可. 如果你想要快速的查看自己改的怎么样,可以在游戏中直接点击"Ctrl+F6",出现"Strings Reloaded"后,重启一次你改的对话框即可. 如果你在做外文语言包的话(比如说我),外文是没有"<string block_id="X" entry_id="0" table_id="X">"这段的,所以说你把它复制下来,粘贴到"strings_XX.xml"是不会运行的. 但是你可以将同种类型的(<string id="X">)粘贴到一个.xml文件里,包括外文和中文,这也是修改外文的一种方法. 没有必要去按照strings_id排列的顺序去编辑,你可以随意找一个位置来编辑(但是事先把原有你想要替换的删除),strings_id的排列顺序只是为了更清晰. 然后是关于称呼的一些问题: 我觉得没有必要去刻意强调"您"之类的敬称,我感觉这样会显得很做作,因为同样都是玩家,去掉一切修饰都是一样的. 如果你想标记你的ID,为语言包留下印记或者防伪,总共有两种方式: 游戏输出端和语言包内部. 游戏输出端: 你可以选择在一些常用的地方去写上你的ID,比如说登陆界面. 切忌去在一些重要的地方标记你的名字,比如说PC对话、商店这样看久了会让人觉得很烦. 一定要让你的介绍简短!!!千万不要将QQ群之类的加入到任何地方. 比如说登录界面:我替换了登录界面的"加载中...请稍候.",写了很多很多东西在登录界面,但是,我们都知道,登录界面加载的很快,写很多东西是读不完的,如果你写很多东西,一闪而过,这样会引起一些不必要的麻烦. QQ群,你加在游戏中,也会让一些人觉得很反感. 语言包内部: 这个很简单,在</strings>结束字符串之外再另起一行,输入"<!-- ___________ -->"即可(替换掉"________"). 但是也千万不要把QQ群也写在这里,因为没有人会去拆包找这些东西的. 所以说,最好是把你想写的、介绍的东西写在你发帖的帖子里面,因为如果他想下载,那就一定会去读的 当然,QQ群也加在帖子里,我个人认为帖子末尾最好,因为开门见山有种广告的感觉,帖子中间不为人发觉,所以说帖子末尾更加适合 关于一些更便捷的方法: 你可以把你的语言包名字改成你想要的,例: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <strings is_primary="0" lang="king" lang_full="king typeface="sc"> 把"lang=" '____' "和 "lang_full='_____' "后面的更改一下 第一个是语言的主类型,为了不和原版重叠,你可以定义一个别的(但是必须是英文)第二个是在游戏设置里显示的语言,全部改好后,来到游戏测试: 点击设置—语言就可以了 这是我改的: 在你把每一个语言包都更改后,你就可以得到了一个专属的语言包测试,不损害原版中文语言包 Edited November 29, 2022 by Thekingofglory YukerGodpanda, Lie, WEmystic and 1 other 2 1 1 Link to comment
ImperialHao Posted August 22, 2022 Share Posted August 22, 2022 yyds! Thekingofglory 1 Link to comment
YukerGodpanda Posted August 23, 2022 Share Posted August 23, 2022 收藏一波😁 Thekingofglory 1 Link to comment
WEmystic Posted August 24, 2022 Share Posted August 24, 2022 加油(ง •̀_•́)ง Thekingofglory 1 Link to comment
Urz Posted August 26, 2022 Share Posted August 26, 2022 于2022/8/23 AM3点07分,Thekingofglory 说: 如果你想要快速的查看自己改的怎么样,可以在游戏中直接点击"Ctrl+F6",出现"Strings Reloaded"后,重启一次你改的对话框即可. 谢谢大佬对于创作语言包的详细描述,我补充一点吧: 用记事本打开语言包文件,并修改后,一定要保存下文件(最好在修改前每个文件都备份下),再按键盘最左下角的“Ctrl”和上面的功能键“F6”,重置语言包,再在游戏里重新启动一次所改动的对话框即可。 pokemmo原版语言包的四个地区中,在每个地区的PC回复时,NPC的对话在语言包中的位置都不太一样,推荐在测试新编辑的文本时,不要选在PC回复的对话,可以修改语言包里的功能指示牌的文本测试效果。 Link to comment
Thekingofglory Posted August 26, 2022 Author Share Posted August 26, 2022 1 minute ago, Urz said: 谢谢大佬对于创作语言包的详细描述,我补充一点吧: 用记事本打开语言包文件,并修改后,一定要保存下文件(最好在修改前每个文件都备份下),再按键盘最左下角的“Ctrl”和上面的功能键“F6”,重置语言包,再在游戏里重新启动一次所改动的对话框即可。 pokemmo原版语言包的四个地区中,在每个地区的PC回复时,NPC的对话在语言包中的位置都不太一样,推荐在测试新编辑的文本时,不要选在PC回复的对话,可以修改语言包里的功能指示牌的文本测试效果。 感谢感谢^^ Link to comment
Urz Posted August 26, 2022 Share Posted August 26, 2022 于2022/8/23 AM3点07分,Thekingofglory 说: 没有必要去按照strings_id排列的顺序去编辑,你可以随意找一个位置来编辑(但是事先把原有你想要替换的删除),strings_id的排列顺序只是为了更清晰. 没必要删除的。 可以把自己修改的语言包文本整理好,在每次游戏更新后,放在新的语言包文件的末尾中,因为后面的文本是会替换掉前面的文本的。 比如说在语言包最下面放入: <string id="2604">{00}上线了.</string> <string id="2604">{00}复活了.</string> 那么在游戏中有好友上线所显示的是:{00}(好友名字)复活了. Link to comment
Urz Posted August 26, 2022 Share Posted August 26, 2022 于2022/8/23 AM3点07分,Thekingofglory 说: 一定要让你的介绍简短!!!千万不要将QQ群之类的加入到任何地方. 啊这……有很多玩家在更新游戏后,不知道去哪里寻找最新的语言包,所以我才加入了QQ群号,在商店那里,我想……方便大家的话也没啥问题吧…… Link to comment
Thekingofglory Posted August 26, 2022 Author Share Posted August 26, 2022 3 minutes ago, Urz said: 没必要删除的。 可以把自己修改的语言包文本整理好,在每次游戏更新后,放在新的语言包文件的末尾中,因为后面的文本是会替换掉前面的文本的。 比如说在语言包最下面放入: <string id="2604">{00}上线了.</string> <string id="2604">{00}复活了.</string> 那么在游戏中有好友上线所显示的是:{00}(好友名字)复活了. 可能是我为了防止冲突的习惯吧,改别的会有冲突 Just now, Urz said: 啊这……有很多玩家在更新游戏后,不知道去哪里寻找最新的语言包,所以我才加入了QQ群号,在商店那里,我想……方便大家的话也没啥问题吧…… 耽误游戏时长(doge Link to comment
Urz Posted August 26, 2022 Share Posted August 26, 2022 于2022/8/23 AM3点07分,Thekingofglory 说: 比如说登录界面:我替换了登录界面的"加载中...请稍候.",写了很多很多东西在登录界面,但是,我们都知道,登录界面加载的很快,写很多东西是读不完的,如果你写很多东西,一闪而过,这样会引起一些不必要的麻烦. 我还是把语言包说明以及详细的使用方法都放在开头吧,想看的玩家可以自行截图,这样……应该……没问题吧……? Link to comment
Thekingofglory Posted August 26, 2022 Author Share Posted August 26, 2022 Just now, Urz said: 我还是把语言包说明以及详细的使用方法都放在开头吧,想看的玩家可以自行截图,这样……应该……没问题吧……? 我手速不行,眼速也跟不上,整个就是一个残疾状态doge Link to comment
Urz Posted August 26, 2022 Share Posted August 26, 2022 于2022/8/23 AM3点07分,Thekingofglory 说: 这个很简单,在</strings>结束字符串之外再另起一行,输入"<!-- ___________ -->"即可(替换掉"________"). 这个是个啥意思没懂呢 Link to comment
Thekingofglory Posted August 26, 2022 Author Share Posted August 26, 2022 1 minute ago, Urz said: 这个是个啥意思没懂呢 可能大概是一个类似于注释的东西吧 我在ui文件夹的xml文件里偷学来的 Link to comment
Urz Posted August 26, 2022 Share Posted August 26, 2022 于2022/8/23 AM3点07分,Thekingofglory 说: 所以说,最好是把你想写的、介绍的东西写在你发帖的帖子里面,因为如果他想下载,那就一定会去读的 好用的语言包是一传十,十传百,百传千,千传万的。 跟我讲,一般来说经由朋友分享使用语言包的,基本上都是不看论坛不看帖子的,这也就是我为啥要把语言包使用指南放在游戏中开头的原因,我也试过写在帖子里,然后写了几千字就没有然后了。 更新了语言包还要写帖子,太麻烦了,比如说我下次语言包会优化四地区传火的文本,稍微高端一点的玩家看一眼都会知道语言包这里优化了啥,而不是把优化的地方写在帖子里面让玩家阅读。 一般玩家想知道的也并不是你的语言包更新的过程,他们最想知道语言包里加的符号是些什么意思。 Link to comment
Thekingofglory Posted August 27, 2022 Author Share Posted August 27, 2022 1小时前,SoFieZ 说: 大大能不能修改那个逃闪提醒的呀 可以的 SoFieZ 1 Link to comment
Thekingofglory Posted September 23, 2022 Author Share Posted September 23, 2022 如果你想要讨论客户端美化内容的话,欢迎加入这里:809364876 Link to comment
Thekingofglory Posted October 8, 2022 Author Share Posted October 8, 2022 学到了一个新招,嘿嘿嘿,我先试试看,做一个外语和汉语两个版本的,做出来之后我会发到这里 Link to comment
SoFieZ Posted October 9, 2022 Share Posted October 9, 2022 11小时前,Thekingofglory 说: 学到了一个新招,嘿嘿嘿,我先试试看,做一个外语和汉语两个版本的,做出来之后我会发到这里 好强! Link to comment
kuuai Posted October 9, 2022 Share Posted October 9, 2022 12小时前,Thekingofglory 说: 做一个外语和汉语两个版本的 我认为,双语完全没有必要 理由是:①每个人的母语只有一个,如果一个人只会中文,当然不会看英文,如果一个人只会看英文,当然也不会看中文,如果你是天才,都会,那么你也会从中选择一种语言阅读罢了,花里胡哨。②部分的地方可能会遇到字数限制,例如商店NPC的售卖物品名称 MMO共使用英语、法语、德语、西班牙语、葡萄牙语、意大利语、荷兰语、波兰语、希腊语、土耳其语、菲律宾语、俄语、韩语、日语、简/繁体中文十五种语言,另有其他语言仍未被翻译,如果你会使用这类未翻译的语言,可尝试帮助官方成员制作这些语言的语言包,我相信这会是一大壮举! Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now