魔兽世界私服trinitycore2的架构(7)国际化方案

 T端的原文是英文的,但T端库本身是支持国际化。我在(6)中介绍了国际化机制。现在,我提供一种方案,能够自动从M端,或者其他T端中导入他们的汉化成果。而且,即使你用sql/FULL覆盖掉原来的库,也能够保证很快的还原。

首先,我提供一个SQL脚本:

1、《T端国际化建库.sql》,这个脚本创建了locale库,以及他需要的表,主要有2种,一个类似item_template表,里面有entry/ename/cname字段,其中entry是关键字,ename是world.item_template中的英文原名,cname字段是汉化过的字段内容。另外一个是类似,locale_item_template表,结构和item_template一样。只是locale_item_plate保存未被汉化的内容。

2、《T端国际化缓冲生成脚本》,这个脚本从T端的world库中,导出需要被汉化的字段,导入到locale库中。如world.item_template先被导入到lcocale.item_template,然后再导入到locale.locale_item_template中。这个方法有点烦,不过保证你已经汉化过以及需要汉化的内容,都在locale.item_template中保存,而未被汉化的内容都在locale.locale_item_template中。每次,你只需要关注locale.locale_item_template就可以了。

3、《T端国际化导入其他汉化库脚本》,这个脚本包括2个过程,一个用来导入类M端的库,另外一个用来导入类T端的库。由于M端和T端的库在结构和字段上会有所不同。不过,同属于T端或者M端的库基本上相同。

4、《T端国际化缓冲回写脚本.sql》,这个脚本是将locale.locale_item_template导回locale.item_template,然后再将locale.item_template导回world.locales_item,而不是world.item_template。这原理在前面介绍过了。

 

这样,所有的汉化成果都会永久性的保存在locale库,不论你怎么倒腾world库,而且也很方便地导入其他人成果。

 

 

前面的几个SQL脚本,主要是在locale库中,生成了几个过程和函数

1、check_zhCN,用来判断某个字符串是否已经被汉化过了。如果是返回1,如果为空返回-1,包括全部是空格的情况,最后是返回0,就是需要汉化。

2、init_from_tc2,从原始的world库生成locale库需要的内容,基本上只要执行一次就可以了。

3、import_new_from_tc2,从world库中导入新增的,需要被汉化的内容到locale库。

3、pick_from_locale,从locale.item_tempate中,提取需要汉化的内容,插入到locale.locale_item_template中,当然,还有其他表。

4、locale_from_trinity,从其他T端的库,更新汉化内容到locale.locale_item_template,必须注意的是,库名必须是trinity,你可以在msyql中,将其他T端的库名修改为trinity,或者,你将这个过程中的trinity.修改为你的实际库名。这个更新过程包含所有需要汉化的表,不止是item_template。

5、locale_from_mangos,从其他M端的库更新,原理和上面一样,同时源库名必须是mangos。

6、restore_to_locale,将locale.locale_item_template已经汉化的内容输出到locale.item_template,包括其他表格。

7、restore_to_tc2,将locale.item_template中已经被汉化的内容输出到world.locales_item,还有其他表格。

 

T端world中需要被汉化的内容如下:

1、achievement_reward [subject/text] 
2、areatrigger_tavern [name]
3、areatrigger_teleport [name]
4、command             [help]
5、creature_ai_scripts [comment]
6、creature_ai_texts   [content_default/comment] 
7、creature_template   [name/subname]
8、db_script_string   [content_default]    
9、game_event          [description]         
10、game_tele           [name]
11、gameobject_template [name/castbarcaption]
12、item_template       [name/description]
13、npc_option          [option_text/box_text]
14、npc_text            [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]
15、page_text           [text]
16、playercreateinfo_spell  [note]
17、playercreateinfo_spell_custom  [note]
18、pool_creature       [description] 
19、[locale]quest_template      [title/details/objectives/offerrewardtext/requestitemstext/endtext/

                                              objectiveText1/ObjectiveText2/ObjectiveText3/ObjectiveText4]
20、script_texts        [content_default/comment]
21、script_waypoint     [point_comment]
22、spell_bonus_data    [comments] 
23、spell_linked_spell  [comment] 
24、transports          [name]
25、trinity_string      [content_string]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值