魔兽世界私服trinitycore2的架构(6)国际化
在T端中,是由数据库保存终端的显示信息,比如物品的名称。默认情况下,他们是enUS英文的。不过,我们需要将他们修改为中文模式。在芒果以及国内比较著名的私服中,都是直接在原地修改的,我原来也是。不过后来发现这样很容易出错,所以仔细研究了下T端的初始化过程,发现了很多有趣的事情。下面,我们先描述下这个过程:
1、客户端在登录认证的时候,会提供一个国家代号,uint8[4],比如:
enUS=0, koKR=1,frFR=2,deDE=3,zhCN=4,zhTW=5,esES=6,esMX=7,ruRU=8
2、认证成功之后,这个国家代号,如中国大陆为“zhCN”,会被转化为代码4保存在realmd.account的locale字段中。同时,会话也会记录这个代码【4】 。
3、以任务为例,当玩家打开任务列表时,任务的ID和标题会被加载进来,T端判断当前的国家代码,如果非enUS的,会根据id检索国际化map,检索出相应的标题。然后返回给客户端。
上面我们看到了,在T端,实际上英文和国际化文字在数据库中是同时存在的,那么,他们是如何存储的呢?在M端和T端中,都有这么几个表:
1、locales_achievement_reward
2、locales_creature
3、locales_gameobject
4、locales_item
5、locales_npc_option
6、locales_npc_text
7、locales_page_text
8、locales_points_of_interest
9、locales_quest
以生物【creature】为例,locales_creature有这么几个字段:
1、entry
2、name_loc1 ... name_loc8
3、subname_loc1 ... subname_loc8
其他几个也一样,他的结构总是为key + [fieldname]_loc[locale_code] 。key就是这个表的关键字,fieldname就是需要国际化的字段,locale_code是个列表,固定从1...8。和locales_creature相对应的是creature_template表,这个定义表明,creature_template表中name/subname两个字段需要国际化。我们中国大陆的代码是4,所以,只要填写name_loc4和subname_loc4就行了。
从locales_XXXX总结下需要汉化的每个表的字段如下:
1、achievement_reward [entry + subject + text]
2、creature_template [entry + name + subname]
3、gameobject_template [entry + name + castbarcaption]
4、item_template [entry + name + description]
5、npc_option [entry + option_text + box_text]
6、npc_text [entry + text0_0 + text0_1 + text1_0 + text1_1 + text2_0 + text2_1 + text3_0 + text3_1 +
text4_0 + text4_1 + text5_0 + text5_1 + text6_0 + text6_1 + text7_0 + text7_1]
7、page_text[entry + text]
8、points_of_interest [entry + icon_name]
9、quest_template[entry + title + details + objectives + offerrewardtext + requestitemtext + endtext +
objectivetext1 + objectivetext2 + objectivetext3 + objectivetext4]
嗯,终于把这个机制写好了。下面就是怎么汉化的问题。有个很多网站提供魔兽世界的翻译信息,比如多玩或者艾泽拉斯地理以及178等。
假如有个物品,编号编号[entry]是[44444],那么你连接【http://db.178.com/wow/cn/item/44444.html】,可以看到这是【黑暗蛛魔胸甲】,在网上看到个方法是这样的:【http://db.178.com/wow/cn/a/item/44444.js】,他会返回这样的内容
$178DB.regstItem({id:44444,icon:'inv_chest_chain_13',tip:'<table width="100%"><tr><td><h2 class="q3"><a href="http://wowdb.178.com/cn/item/44444.html" mce_href="http://wowdb.178.com/cn/item/44444.html" rel="no">黑暗蛛魔胸甲</a></h2> 装备后绑定<br /><table width="100%"><tr><td>胸部</td><th> 锁甲</th></tr></table>1089 护甲<br /><span>+ 64 耐力</span><br/><span>+ 59 智力</span><br/><!--e-->耐久度 120/120<br />需要 等級 76<br /></td></tr></table><table width="100%"><tr><td><span class="q2">装备:法术强度提高70点。</span><br/><span class="q2">装备:爆击等级提高34。</span><small class="q0">(0.74% @lv80)</small><br/></td></tr></table><br /><span class="q"><a href="/wow/cn/itemset/755.html" mce_href="wow/cn/itemset/755.html">蛛魔之巢</a> (0/8) </span><br /><spen class="itemsets"><a href="/wow/cn/item/38418.html" mce_href="wow/cn/item/38418.html" class="q0" rel="no">蛛魔腰带</a><br/><a href="/wow/cn/item/38419.html" mce_href="wow/cn/item/38419.html" class="q0" rel="no">蛛魔长靴</a><br/><a href="/wow/cn/item/38420.html" mce_href="wow/cn/item/38420.html" class="q0" rel="no">蛛魔胸甲</a><br/><a href="/wow/cn/item/38421.html" mce_href="wow/cn/item/38421.html" class="q0" rel="no">蛛魔手套</a><br/><a href="/wow/cn/item/38422.html" mce_href="wow/cn/item/38422.html" class="q0" rel="no">蛛魔护腿</a><br/><a href="/wow/cn/item/38417.html" mce_href="wow/cn/item/38417.html" class="q0" rel="no">蛛魔护肩</a><br/><a href="/wow/cn/item/38439.html" mce_href="wow/cn/item/38439.html" class="q0" rel="no">蛛魔头盔</a><br/><a href="/wow/cn/item/38435.html" mce_href="wow/cn/item/38435.html" class="q0" rel="no">蛛魔护腕</a><br/></span><br /><span class="q0">(2) <a href="/wow/cn/spell/51262.html" mce_href="wow/cn/spell/51262.html">使你的命中等级提高15。</a></span><br /><span class="q0">(4) <a href="/wow/cn/spell/51263.html" mce_href="wow/cn/spell/51263.html">使你的耐力值提高25点。</a></span><br /><span class="q7">物品等級: 171</span><br /><span class="money_g">7</span><span class="money_s">25</span><span class="money_c">26</span>'});
从中可以解出需要的信息。这个地址的格式是:http://db.178.com/wow/[locale]/a/[type]/[entry].js,其中[locale]是cn,表示简体中文,台湾应该是tw;[type]是类型,有item/npc等;而[entry]就是表格中的entry值。
还有些很奇怪的单词或者名称不一定有,那么就需要翻译了。有个地址不错,输入这个地址:
http://db.ngacn.cc/tips/index.php?key=Might of Kalimdor Archmage&word=1,他会输出:
Might of Kalimdor Archmage 卡利姆多联军大法
0.006599
表示“Might of Kalimdor Archmage” 的中文意思是【卡利姆多联军大法师】,0.006599是他的执行时间。
注意,将你所要查的东西都可以放在key后面,不过最好用加入&word=1,不然,输出就不会这么简单。
好了,累死,终于写好了。我在www.romandion.com提供我的成果,如果你需要的话,用用户locale,密码为空连接到上去,推荐navicat。可以随时看到我汉化的结果。如果你以及汉化好了,欢迎共享。加入我的群【32285689】,大家互相学习,不过群是实名制,请见谅。
魔兽世界私服trinitycore2的架构(6)国际化相关推荐
- 魔兽世界私服trinitycore2的架构——世界对象
魔兽世界私服trinitycore2的架构--世界对象 假设世界突然静止,你能够从中单独去掉的物体就是构成这个世界的对象,包括玩家.怪物.武器.矿石等.魔兽世界是个大型的网游,里面的种类十分丰富,更不 ...
- 魔兽世界私服trinitycore2的架构(5)世界对象
假设世界突然静止,你能够从中单独去掉的物体就是构成这个世界的对象,包括玩家.怪物.武器.矿石等.魔兽世界是个大型的网游,里面的种类十分丰富,更不用说对象了.当我看着trinity-core2的源码中, ...
- 魔兽世界私服trinitycore2的数据库TDB(1)
TDB_0.0.5 ,又叫[Phoenix]是配合trinitycore2的数据库,他的官方网站在[http://www.trinitydatabase.org/ ],下载地址在[http://svn ...
- 魔兽世界私服trinitycore2的数据库TDB(3)
以前介绍了TDB0.0.5的渊源,现在继续介绍TDB内部的一些细节.从[TC2 wiki ]可以查到TDB_0.0.5结构比较详细的介绍. 在一个完整的TDB_0.0.5的MYSQL安装库中,你可以看 ...
- 开源魔兽世界私服搭建
本文档是原创的,具有可操作性,不是网络上互相抄袭的博客. 觉得有用就赞一个,项目源码: https://github.com/geektcp/Namjagbarwa-wow 同名原创文章(界面样式更简 ...
- Linux运行魔兽世界单机,在linux下架设魔兽世界私服
制作:高进波 日期:2009-3-19 主题:How to compile MaNGOS on Linux. 两小时在linux下建立魔兽世界私服,以下内容亲测通过,是自己建立魔兽世界私服难得的资料. ...
- 魔兽世界私服单机版中maps,vmaps,mmaps地图的作用
很多朋友可能每次使用魔兽世界单机版的时候,或则自己搭建魔兽世界私服服务器的时候,总会发现,需要从客户端中提取很多类型的地图 例如常见的有 Maps ,Maps是必须的,而且提取后,必须放到魔兽私服单机 ...
- 魔兽世界私服 服务器系统要求,全球最大《魔兽世界》私服有望重启 暴雪亲自运营...
最近,<魔兽世界>怀旧私服Nostalrius被关停的事件闹得沸沸扬扬.迫于玩家的呼声,暴雪近日对此进行了官方回复. <魔兽世界>社区经历亚伦·布雷克(Allen Brack) ...
- TrinityCore 魔兽世界私服11159 完整配置
为什么要研究TrinityCore ? (1)它是一个完整成熟的可运行调试的网游服务器框架. (2)它是一个跨平台的标准C++编写的项目,在Windows.Linux.MacOSX上都可编译运行. ( ...
最新文章
- CTFshow 命令执行 web50
- 利用一维数组求菲波那契数列前40项的和并输出结果。_[W2D2]斐波那契数列
- hdoj4710 规律题
- POJ2155 Matrix 二维线段树
- 谁说“IT 不理解 OT”?开放自动化来破局!
- FJUT 2351 T^T的图论(并查集)
- javascript:鼠标拖动图标技术
- c#类似跑马灯抽签小程序
- Simulink 环境基础知识(五)--编程建模基础知识
- 阿里云CDN是什么?阿里云CDN配置与购买优惠教程
- .net支付宝沙箱二维码支付
- Premiere Pro CS4\CS5\CS6\CC2015\CC2017\CC2018\CC2019软件安装教程
- 京东物流实时风控实践
- ms word 的激活
- PowerShell的基本使用方法
- SCI-HUB客户端(文献神器V4.0)——下载文献如此简单
- 系统集成项目管理工程师教程考点精讲之风险的分类
- 《数学之美》读书记录【思维导图记录】:第五章,隐含马尔可夫模型
- CAD使用教程问题合集
- Artoolkit学习之一error LNK2019错误解决
热门文章
- og my god
- android开发手机推荐 2015,外媒评选出2015年6大最佳Android智能手机
- c# 二次控件开发时没有注册类别 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))
- 通过指针引用数组(包含多种例子,清晰易懂)
- php excel多级下拉菜单自动生成,Excel中任意多级下拉菜单的制作方法
- 如何让自己和优秀的女孩匹配?追求优秀女孩的必备条件
- 协议数据单元PDU和服务数据单元SDU
- 不是有效Win32程序,VS2015编译C++在XP上运行
- 【电脑常识】任务管理器快捷键
- pycharm必会的常见快捷键