在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)国际化相关推荐

  1. 魔兽世界私服trinitycore2的架构——世界对象

    魔兽世界私服trinitycore2的架构--世界对象 假设世界突然静止,你能够从中单独去掉的物体就是构成这个世界的对象,包括玩家.怪物.武器.矿石等.魔兽世界是个大型的网游,里面的种类十分丰富,更不 ...

  2. 魔兽世界私服trinitycore2的架构(5)世界对象

    假设世界突然静止,你能够从中单独去掉的物体就是构成这个世界的对象,包括玩家.怪物.武器.矿石等.魔兽世界是个大型的网游,里面的种类十分丰富,更不用说对象了.当我看着trinity-core2的源码中, ...

  3. 魔兽世界私服trinitycore2的数据库TDB(1)

    TDB_0.0.5 ,又叫[Phoenix]是配合trinitycore2的数据库,他的官方网站在[http://www.trinitydatabase.org/ ],下载地址在[http://svn ...

  4. 魔兽世界私服trinitycore2的数据库TDB(3)

    以前介绍了TDB0.0.5的渊源,现在继续介绍TDB内部的一些细节.从[TC2 wiki ]可以查到TDB_0.0.5结构比较详细的介绍. 在一个完整的TDB_0.0.5的MYSQL安装库中,你可以看 ...

  5. 开源魔兽世界私服搭建

    本文档是原创的,具有可操作性,不是网络上互相抄袭的博客. 觉得有用就赞一个,项目源码: https://github.com/geektcp/Namjagbarwa-wow 同名原创文章(界面样式更简 ...

  6. Linux运行魔兽世界单机,在linux下架设魔兽世界私服

    制作:高进波 日期:2009-3-19 主题:How to compile MaNGOS on Linux. 两小时在linux下建立魔兽世界私服,以下内容亲测通过,是自己建立魔兽世界私服难得的资料. ...

  7. 魔兽世界私服单机版中maps,vmaps,mmaps地图的作用

    很多朋友可能每次使用魔兽世界单机版的时候,或则自己搭建魔兽世界私服服务器的时候,总会发现,需要从客户端中提取很多类型的地图 例如常见的有 Maps ,Maps是必须的,而且提取后,必须放到魔兽私服单机 ...

  8. 魔兽世界私服 服务器系统要求,全球最大《魔兽世界》私服有望重启 暴雪亲自运营...

    最近,<魔兽世界>怀旧私服Nostalrius被关停的事件闹得沸沸扬扬.迫于玩家的呼声,暴雪近日对此进行了官方回复. <魔兽世界>社区经历亚伦·布雷克(Allen Brack) ...

  9. TrinityCore 魔兽世界私服11159 完整配置

    为什么要研究TrinityCore ? (1)它是一个完整成熟的可运行调试的网游服务器框架. (2)它是一个跨平台的标准C++编写的项目,在Windows.Linux.MacOSX上都可编译运行. ( ...

最新文章

  1. CTFshow 命令执行 web50
  2. 利用一维数组求菲波那契数列前40项的和并输出结果。_[W2D2]斐波那契数列
  3. hdoj4710 规律题
  4. POJ2155 Matrix 二维线段树
  5. 谁说“IT 不理解 OT”?开放自动化来破局!
  6. FJUT 2351 T^T的图论(并查集)
  7. javascript:鼠标拖动图标技术
  8. c#类似跑马灯抽签小程序
  9. Simulink 环境基础知识(五)--编程建模基础知识
  10. 阿里云CDN是什么?阿里云CDN配置与购买优惠教程
  11. .net支付宝沙箱二维码支付
  12. Premiere Pro CS4\CS5\CS6\CC2015\CC2017\CC2018\CC2019软件安装教程
  13. 京东物流实时风控实践
  14. ms word 的激活
  15. PowerShell的基本使用方法
  16. SCI-HUB客户端(文献神器V4.0)——下载文献如此简单
  17. 系统集成项目管理工程师教程考点精讲之风险的分类
  18. 《数学之美》读书记录【思维导图记录】:第五章,隐含马尔可夫模型
  19. CAD使用教程问题合集
  20. Artoolkit学习之一error LNK2019错误解决

热门文章

  1. og my god
  2. android开发手机推荐 2015,外媒评选出2015年6大最佳Android智能手机
  3. c# 二次控件开发时没有注册类别 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))
  4. 通过指针引用数组(包含多种例子,清晰易懂)
  5. php excel多级下拉菜单自动生成,Excel中任意多级下拉菜单的制作方法
  6. 如何让自己和优秀的女孩匹配?追求优秀女孩的必备条件
  7. 协议数据单元PDU和服务数据单元SDU
  8. 不是有效Win32程序,VS2015编译C++在XP上运行
  9. 【电脑常识】任务管理器快捷键
  10. pycharm必会的常见快捷键