上章回顾:在第3章《魔兽地图汉化新教程第3章:汉化源字符串》,我们已经学会了如何汉化源字符串。但是那只是基础汉化。

本章简要:war3map.j里面包含地图的剧情和任务信息。翻译方式同第3章,关键是如何找到需要翻译的信息。


第一节:准备工作

在解压的U9_30min_4.5.5.w3x文件夹中搜索war3map.j文件,找到它的位置,并把它复制一份,以备查错。

小知识:war3map.j通常要么在地图根目录,要么在地图根目录的scripts文件里。

第二节:提取需汉化的句子

1、打开EmEditor,文件——打开...(按下图顺序点击)

2、搜索——查找或者按Ctrl+F打开查找界面

3、点击全部提取(T)后面的▼——设置提取选项

4、按下图勾选后点击确定

5、在查找区域输入:"*.+",勾选使用正则表达式(X),最后点全部提取

提示:"*.+" 这个要查找的正则表达式你可以直接复制。两个引号一定是英文引号"",而不是中文引号“”。

6、全部提取后,主界面被分为两块区域,输出栏是显示查找的结果(如蓝色框),双击可以快速定位句子在原文中位置(如紫色框)。但你定位后到原文后,你就可以在原文上(如紫色框)翻译,而不是在输出栏(如蓝色框)里翻译

(1)两个箭头处的双引号之间的内容就是我们需要翻译的俄文或者其他外文。

(2)|cFF00C850 如同第3章所讲,是颜色代码。不需要改动。

(3)\n 不同于第3章表示的换行符|n表达,但也是war3map.j里换行符的表达方式。不需要改动

小知识:在war3map.j里,英文双引号一定是一对一对出现,括号通常有左括号就有右括号,除非是这种表达:\( 或 \),出现概率极低。所以在汉化时尽量不要随意增减引号和括号。否则极易造成地图加载崩溃。且不易发现错误。


第三节:war3map.j汉化窍门

随着汉化经验的增加,你会发现用第二节所教可以完整的提取出所有英文引号的句子,其中包括了很多不需要汉化的句子。那么有没有办法更精准定位需要翻译的地方呢?答案是:有!

你可以通过以下查找,提取以下触发字段,快速定位一些需要翻译的:

DisplayTimedTextToForce 给所有玩家的屏幕文字(指定计时)

CreateTextTagLocBJ 地形的漂浮文字

DisplayTextToForce 给单个玩家的屏幕文字(自动计时)

CreateTextTagUnitBJ 单位的漂浮文字

DialogSetMessageBJ 菜单文字

CreateQuestBJ F9文本

Multiboard 右上角多面板文字

例如,我查找DisplayTimedTextToForce,全部提取。

那下面输出栏里定位出来的原文就是我们要重点汉化的!


第四节:其他不要忽略汉化的文件

1、war3map.wts 原始字符串文件。几乎所有的字符都“应该”储藏在war3map.wts文件里。然而,地图被作者加密过,这种加密技术往往把本该保存在wts的内容分散开来,导致war3map.wts这个文件有名无实。但是,wts文件中仍然有少量残余文本,千万不要漏掉不管。

2、war3mapskin.txt 地图游戏界面设置文件,有少量残余文本


第五节:课后作业

以下war3map.j在游戏里是如何显示的?

call DisplayTimedTextToForce(GetPlayersAll(),30,"|cFF00C850红色玩家可以输入\"-set (数字)\"选择进攻敌人类型。不选择则系统随机。")

A、红色玩家可以输入\"-set (数字)\"选择进攻敌人类型。不选择则系统随机。

B、红色玩家可以输入"-set (数字)"选择进攻敌人类型。不选择则系统随机。

答案:B

解析:\",其中\是表示转义的,即表示常见的那些不能显示的ASCII。war3map.j中常见的转义:字符

转义字符 意义
\n 换行(LF) ,将当前位置移到下一行开头
\\ 代表一个反斜线字符''\'
\' 代表一个单引号(撇号)字符
\" 代表一个双引号字符