forked from zorioning/stendhal-cn
-
Notifications
You must be signed in to change notification settings - Fork 2
Home
zorioning edited this page Aug 26, 2018
·
11 revisions
- data/config 目录,里面是xml文件,都是些精灵、物品和地图的属性描述。主要修改两个地方,标签、 标签,也就是名称和描述。 另外还有个需要修改的地方是怪物掉落物品的名称。针对xml要做的是关键字替换,需要配合date/langulge/zh_CN.txt 做全局替换。 建议先汉化zh_CN.txt, 然后再做替换。
- src/games/stendhal/server/下的 maps、entity、action目录,里面是NPC的对话、任务记录和菜单命令,汉化这些需要一个一个手工打开查找,一些对话是字符串的拼接,所以汉化这些内容需要有一定编程基础。详细方法请看第二章中的(二)夹杂在程序中的句子翻译
一般物品名称需要替换的地方有三处:xml中的物品name和打怪掉落物品item的name,npc对话和任务的关键物品,物品买卖的关键字。出现其他需要替换的地方就要小心,vscode可以去不需要替换的地方。核对清楚后再替换 怪物名称需要替换的地方有下面几处:xml中的怪物名称,npc对话中的一些相关名词,一些任务中的打怪需求,
- 查找替换时加 "" (英文半角双引号),比如 "wolf"替换为"狼", 因为这样可以最大限度的少替换不该被替换的内容。虽会漏掉一些,但程序不会出错,如果不小心替换了程序中的变量什么的,造成程序无法正常运行就惨了。 搜完加引号的,然后再搜一遍不带引号的,检查一下有没有漏掉的地方。
- 就算加了双引号,还是有些不该替换的被替换,要格外小心。比如一些 类型属性名称与主名称相同,比如axe主名称是斧子,但类型class名称也是axe, 要注意替换时只替换主名稳,物品类型等其它属性名称不替换
- 先替换长字符串,再替换短的。比如 "sword"、"long sword"、"gold sword" 这些名称,如果先找sword, 肯定会找到 long sword 和 gole sword, 如果不小心替换了,后面再汉化long sword查找时会出现很多问题。
因为大量NPC对话和客户端发送的命令都在程序中混着,所以汉化这些需要编程基础。翻译时要注意句子里面的特殊符号,常用的符号如下
# ,命令前缀。 比如 #帮助 ,要注意加#的词会在客户端加亮显示,客户输入这个词会触发事件,所以 #命令 的前后要有半角空格,
再比如 #gold 命令本来是英文的,汉化中文时,同时要替换和 #gold 和同一文件 addReply("gold",...) 中的 “gold” . 这样命令才能生效。
一些常用命令我已做好,比如 #help , 我已替换为 #帮助,#帮忙 , #帮我 这些词都可用, 具体添加方法是修改
[src/games/stendhal/server/entity/npc/ConversationPhrases.java](https://github.com/Gamuxorg/stendhal-cn/blob/master/src/games/stendhal/server/entity/npc/ConversationPhrases.java) 这个文件中的
public static final List<String> GREETING_MESSAGES = Arrays.asList("hi","hello", "喂", "嗨", "你好","您好")
另外还有
"job", "work", "工作", "找工作"
"help","帮助","求助","帮忙","帮我"
task","quest", "favor", "favour", "任务","需要","需求";
"done","finish", "complete","完成","好了","已完成";
"another", "abort","其他","其它","取消","另外";
"offer", "deal", "trade","买卖","交易","价格","报价"
"yes", "ok", "好的", "可以","好","是","中","行","要"
NO_EXPRESSION, "nope","nothing", "none","不","不是","没有","不行","不好");
"bye", "goodbye", "再见", "走了", "退出","拜拜");
!me ,遇到这个不要动,保留就行,只在宠物对话中见到过
[xxx] , 遇到中括号也不要动里面的内容