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]