夜间模式 收藏本站

手机短信,快捷登录

QQ登录

只需一步,快速开始

搜索
热搜: 地图 汉化 ORPG
查看: 16430|回复: 7

全系列地图的汉化教程(汉化经验贴)

[复制链接]

71

主题

238

回帖

4125

积分

管理员

积分
4125
发表于 2014-11-7 20:27:03 | 显示全部楼层 |阅读模式

全系列地图的汉化教程(汉化经验贴)

 

 

目前正在修改 优秀地图的汉化(只谈我的一些汉化探索) 部分.

(整合魔兽汉化脚本说明 V 1.0及更新后的汉化工具使用说明)

 

 

Na

2007-7-14 15:11:27 星期六

QQ: 8684912

网盘:nams.5u6.net (我自己所有魔兽工具资料都已上传)

转载请保证完整性,以免读者误解!

 

 

 

目录

写在前面

第一部分汉化需要知道的知识(只介绍与汉化有关的方面)

 

翻译和汉化过程是怎么回事

地图的基本结构

不同层次地图的汉化(字符串的位置和汉化流程)

汉化地图常用的工具

第一层 字符串文件的汉化(war3map.wts 的汉化)

第二层 触发器里文本的汉化(war3map.j 的汉化)

第三层 各设置里文本的汉化(war3map.w3? war3map.skin 的汉化)

汉化必须了解的几个细节

其他汉化经验帖推荐(基础汉化经验介绍)

 

第二部分第四层 SLK地图的汉化

 

魔兽的数据

字符串分布位置及手工汉化流程

确定需要汉化的项目

Units里文件的汉化(***String.txt)

背景图片里文字的处理

 

第三部分优秀地图的汉化(只谈我的一些汉化探索)

 

我的汉化探索历程(汉化者大都遇到过类似经历)

背景图片的处理

资料库的整理

我的汉化工具的应用

升级版本的汉化

繁体版本的汉化

团队协作汉化

优秀地图的汉化授权

SLK 技术之我的中文地图应用探索

 

FAQ

 

 

 

 

 

 

写在前面

 

离开魔兽时给自己布置了以下功课:

NOTD AM ,SO 的汉化流程及细节

NOTD CN 的相关素材推荐上传  

NOTD AM ,SO 的以前汉化素材整理上传  

这两年收集的魔兽资料,工具,地图,整理上传  

魔兽三年半备忘录

 

 

 

该帖原是给接手汉化NOTD AM,SO 朋友的经验贴,作为这一年多汉化经历的总结.

最初是把在汉化NOTD SO时编写的汉化脚本做了优化,写了使用帖,介绍用汉化脚本进行汉化的方法,

然后加上以前写的汉化工具 使用帖,就基本完成了第一个功课

 

上周帖上来觉得过于零散,就补上了汉化需要知道的知识这部分.主要讲目前常用的汉化方法.

后来又补上了第四层SLK地图的汉化 部分,主要讲NOTD AM,DOTA 的汉化方法

加上正在写的 优秀地图的汉化(整合更新魔兽汉化脚本说明及汉化工具使用说明)

就基本完成了全系列地图的汉化教程.

 

 

 

 

 

以下正文:

 

 

 

 

第一部分:汉化需要知道的知识(只介绍与汉化有关的方面)

 

翻译和汉化过程是怎么回事

地图的基本结构

不同层次地图的汉化(字符串的位置和汉化流程)

汉化地图常用的工具

第一层 字符串文件的汉化(war3map.wts 的汉化)

第二层 触发器里文本的汉化(war3map.j 的汉化)

第三层 各设置里文本的汉化(war3map.w3? war3map.skin 的汉化)

汉化必须了解的几个细节

其他汉化经验帖推荐(基础汉化经验介绍)

 

 

 

翻译和汉化过程是怎么回事

 

翻译:地球人都知道.

 

汉化过程:简单讲的是在地图里找到需要翻译的外文(字符串),把它们筛选提取出来,

翻译后,在原来外文(字符串)位置上把外文(字符串),替换成中文,并重新打包地图的过程.

 

要汉化地图,首先要知道那些外文在哪?那就需要先了解地图的基本结构

 

 

 

地图的基本结构

 

 

魔兽地图简单讲,是一个用暴雪公司自己的格式压缩而成的压缩包(MPQ压缩格式),需要相关工具打开.

(用到的相关工具会在后面介绍)

 

我们用工具把地图打开(MPQMaster或其他工具,就像用 RAR 那样),可看到许多文件

(如打开地图失败,可用 ShadowEditor 修复文件头)

而我们的汉化工作通常涉及到地图里的下列文件

 

war3map.wts 字符串,所有外文文本的原始存放位置

war3map.j   jass数据库,剧情文本(在根目录下或在/scrtips目录下)

war3map.w3u 单位的介绍,名字等

war3map.w3t 物品的介绍,描述等

war3map.w3a 技能的介绍,每级描述等

war3map.w3h 魔法特效的介绍,描述等

war3map.w3q 升级的介绍,描述等

war3map.w3b 可破坏的介绍,描述等 如:箱子

war3map.w3d 装饰物的介绍,描述等 如:房子

war3map.w3i 地图信息 基本介绍 如:部队名
war3mapSkin.txt  界面,系统提示信息

Units目录   最优秀的魔兽RPG地图会涉及到(很多字符进一步分解到该目录)

 

我们需要翻译的字符串(以后字符串即指外文文字)原本放在war3map.wts,这是暴雪公司专门为字符串提供的储存文件.

但现实是:字符串不会全在war3map.wts里面,而会分布在上述部分或全部文件里

为什么会出现这种情况呢?看下面.

 

 

汉化地图的不同层次

 

 

前面提到字符串除了在war3map.wts里面还分布在上述部分或全部文件里

这是因为有些地图作者使用了第三方(魔兽爱好者制作)的优化软件或加密软件来处理地图以达到下面目的.

 

加密软件的作用,大家听名字就知道.

而优化软件的主要作用是提高魔兽处理地图的速度(不展开讨论)

    :减少读取地图的时间,打开F9,减少地图大小等问题

    目前的主流优化加密软件是 Wc3MapOptimizer  Widgetizer 

    Wc3MapOptimizer 主要将字符串分解到各 war3map.w3? 系列文件 及 war3map.j 等文件中

    Widgetizer      主要将字符串进一步分解到Units目录里(即通常说的SLK技术)

 

下面取自Wc3MapOptimizer 的帮助说明:

测试地图: Vexorian Hero Arena 0.507 (not released yet) 

 

 

Map Size?/b>

Loading Time?/b>

Original File

1227 KB

2 min 32.45 sec

Map Optimizer

655 KB

2 min 17.24 sec

Widgetizer

1142 KB

1 min 13.68 sec

Widgetizer+Optimizer?/td> 

888 KB

1 min 11.25 sec

Widgetizer  Optimizer 先后处理后可以减少地图大小 339KB 81.2秒读图时间

 

 

正因为部分地图作者使用了上述优化加密软件,我们在想要了解汉化的方法之前,一定要先了解汉化地图层次的不同。

 

  根据不同的优化加密处理方式,一共有四种层次的汉化。称之为层次,而不称为种类的原因是,严格来说,种类是样样都不相同的,而层次却是再高的层次也包含了较低层次的特性。即,汉化的层次是渐进的。第一层次的汉化是包含在第二层中的,第二层又包含在第三层中,第三层又在第四层中。事实上,第四层(SLK 地图的汉化)是最高的层次,包括了所有的汉化层次,也超过了所有的层次。

  事实上,除非你能熟悉前面的汉化层次,否则你没法进人后面的层次。

 

第三层,才算是真正进入汉化的层次,目前大多数地图的优化加密程度在该层次。这和前一个层次(第一层目前大多不会遇到,优秀地图一般都会优化加密;第二层地图优化不够.)相当不同,也跟自然而来的下一个层次(第四层地图的优化加密的文件更多且使用的该技术的优秀地图更少)大有差异。但是,就像我们前面强调的,汉化的层次是渐进累积的。因此,第一层是包含在第二层中的,而事实上,第二层又包含在第三层中,第三层则包含在SLK 地图的汉化中。

 

我会在第二部分讨论SLK 地图的汉化。此刻我只粗浅地说,SLK 地图的汉化不是个轻松的汉化工作,方法和流程也并不广为人知。事实上,SLK 地图的汉化是最花力气的一种汉化。虽然如此,SLK 地图的汉化却可能是所有汉化工作中最有意义的。因为使用该技术的地图多为目前经典的地图(DOTA,NOTD),所以绝对值得了解如何汉化这样的地图。

 

 

在了解不同汉化的层次后,我们需要了解不同层次地图字符串分布的位置及其汉化流程.

 

 

 

不同层次地图字符串分布的位置和汉化流程

此处介绍的汉化流程是指目前的手工汉化的流程,后面会谈我自己更高效的汉化方法技巧

 

 

第一层WE(魔兽编辑器)制作完成后的自定义地图.

 

字符串分布位置:

war3map.wts 字符串,所有外文文本的原始存放位置

:字符串都在war3map.wts.

 

 

汉化流程

1. MPQMaster打开地图,解压出 war3map.wts

2. 翻译war3map.wts

3. 把翻译好后的war3map.wts,添加到地图里,替换掉原来的war3map.wts

4. ShadowEditor修改文件头的地图名 (即建主机时看到的地图名)

5. 删除 (attributes) 文件 (该文件用于检查地图是否被修改,不删除会造成魔兽出错,而删除对游戏没有影响)

6. 重新压缩地图  (减少地图大小)

7. 修改文件名 (通常在文件名后加上 CN 标识,主要用作玩家在HF下载地图时识别)

8. 完成! 

 

 

 

第二层WE(魔兽编辑器)制作地图及使用部分加密软件,可能出现部分字符串被放到war3map.j.

 

字符串分布位置:

war3map.wts 字符串,所有外文文本的原始存放位置

war3map.j   jass数据库,剧情文本(在根目录下,加密后通常在/scrtips目录下)

:字符串在war3map.wtswar3map.j .

 

 

汉化流程

1. MPQMaster打开地图,解压出 war3map.wts war3map.j

2. 翻译war3map.wtswar3map.j

3. 把翻译好后的war3map.wts, war3map.j添加到地图里,替换掉原来的war3map.wts, war3map.j

4. ShadowEditor修改文件头的地图名 (即建主机时看到的地图名)

5. ShadowEditor删除 (attributes) 文件 (该文件用于检查地图是否被修改,不删除会造成魔兽出错,而删除对游戏没有影响)

6. ShadowEditor重新压缩地图  (减少地图大小)

7. 修改文件名 (通常在文件名后加上 CN 标识,主要用作玩家在HF下载地图时识别)

8. 完成! 

 

 

 

第三层WE(魔兽编辑器)制作完成后,使用优化加密软件(Wc3MapOptimizer & W3MMaster )处理(优化文字的读取).

 

  字符串分布位置:

war3map.wts 字符串,所有外文文本的原始存放位置(残留部分)

war3map.j   jass数据库,剧情文本,有部分文本会保留在war3map.wts (加密后通常在/scrtips目录下)

war3map.w3u 单位的介绍,名字等

war3map.w3t 物品的介绍,描述等

war3map.w3a 技能的介绍,每级描述等

war3map.w3h 魔法特效的介绍,描述等

war3map.w3q 升级的介绍,描述等

war3map.w3b 可破坏的介绍,描述等

war3map.w3d 装饰物的介绍,描述等

war3map.w3i 地图信息 基本介绍
war3mapSkin.txt  界面,系统提示信息

:字符串在war3map.wts war3map.j war3map.w3u war3map.w3t war3map.w3a war3map.w3q war3mapSkin.txt

 war3map.w3i war3map.w3b war3map.w3d 

 

 

汉化流程

1.  MPQMaster打开要汉化的地图,解压出 war3map.wts, war3map.j, war3mapSkin.txt

2.  DataMapGen 选择要汉化的地图,生成一个新地图(数据地图)

3. WE 打开新地图(数据地图),导出字符串 ***.wts (***为你自己命名的文件名)

4. 翻译war3map.wts, war3map.j, war3mapSkin.txt, ***.wts(该文件前部分和war3map.wts 内容会相同,不翻译即可)

5. 把翻译好后的 ***.wts 导入字符串到 WE 里面,

6. 然后打开 WE的物体编辑器 导出 单位设置,装饰物设置,可破坏物设置,物品设置,技能设置,魔法效果设置,科技设置(文件名都是war3map)

7. 把翻译好后的war3map.wts, war3map.j和刚才导出的文件添加到地图里,替换掉原来的war3map.wts, war3map.j, war3map.w3?系列文件

8. ShadowEditor打开汉化地图,把里面的相关项目(地图名,地图简介,部队名等)翻译替换掉

9. ShadowEditor修改文件头的地图名 (即建主机时看到的地图名)

10. ShadowEditor删除 (attributes) 文件 (该文件用于检查地图是否被修改,不删除会造成魔兽出错,而删除对游戏没有影响)

11. ShadowEditor重新压缩地图  (减少地图大小)

12. 修改文件名 (通常在文件名后加上 CN 标识,主要用作玩家在HF下载地图时识别)

13. 完成! 

 

 

 

第四层: WE(魔兽编辑器)制作完成后,经过 Widgetizer  Wc3MapOptimizer 两款优化软件先后处理过.

最优秀的魔兽RPG地图都会最大限度的优化地图以提高效率.

目前国内以DOTA 系列 DOTA汉化组,NOTD 系列 夜天使汉化组为代表.在组织维护着各自系列地图的汉化更新

:该系列地图汉化此处不展开,第二部分专门讨论.

 

 

 

最后检查上面四种地图汉化完成后,都要进入游戏检查以下方面:

 

地图是否可以正常运行(attributes)是否删除war3map.j是否正确 }

地图名,介绍,背景文字,剧情 

翻译的文字显示是否有误及语法格式

单位,物品技能等的介绍技能热键显示,技能的参数魔法效果,升级等

还有什么地方没有汉化到

 

 

反复校对,重复前面部分汉化流程,直至OK!

发布汉化地图!

 

 

到现在我们知道了一个魔兽地图的基本汉化过程.

在具体谈汉化细节前我们需要一些工具,善其工必先利其器!

回复

使用道具 举报

71

主题

238

回帖

4125

积分

管理员

积分
4125
 楼主| 发表于 2014-11-7 20:40:06 | 显示全部楼层

汉化地图常用的工具

 

 

前面已经用到了部分工具,后面还会用到一些这里在给出我常用工具的同时也提到部分功能相似工具供大家选择

这里的工具以076月止,相信以后会有更优秀的工具出现.

(这里只介绍汉化方面的工具,更多工具资料,都放到我的网盘里了,并有工具介绍目录列表,有兴趣的朋友可去看看)

 

打开编辑地图,解压文件

MPQMaster(打开地图,解压地图快)

W3MMaster(修改地图背景介绍)

WinMPQ(多用它压缩地图)

ShadowEditor(推荐今年出,功能更多,还可替换W3MMaster WinMPQ 部分功能,:修复文件头,修改地图背景介绍, 压缩地图)

 

提取地图数据

DataMapGen(汉化地图时一直用它)

W3Mmanager(可提取地形文件,对于查看加密地图的全地图可用)

 

文本编辑器(用来翻译war3map.j, war3map.wts ),下面是国内流行的共享三强

UltraEdit (我喜欢用它比较文件,十六进制编辑,列编辑,方便的查找搜索,写触发、脚本等等三款中功能最强), 

EmEditor (天天用,喜欢它漂亮的界面及回车符,还有多种快捷的换行方式,方便看文本文件,插件多多,支持繁简转换,简繁地图转换可用,处理一般文本文件很方便)

EditPlus (只处理一般文件方便,我不用,不喜欢它的界面,我唯一有兴趣的是剪贴板检视功能)

 

Jass 编辑器

JassCraft(我多用他来检查 warmap.j 是否有误不支持UTF-8中文显示)

 

魔兽地图编辑器: WE(这个不用我多说,只有一点,推荐Red Wolf 更新翻译的触发汉化)


第一层 字符串文件的汉化(war3map.wts 的汉化)

 

 

看了上面的介绍,知道了要汉化的文本的位置及汉化流程,这里用例子来讲 war3map.wts 的具体汉化

 

下面以Night of the Dead II Beta 1.00.w3x 的 war3map.wts 为例

 

字符串的原始格式为:

 

STRING XXX

// XXX: XXX (XXX), XXXX (XXXXX)

{

XXXXXX.

}

 

 

STRING XXX    XXX  是数字,表示当前是第几项字符串,千万不要动,魔兽会查找STRING 来确定这段字符串该作为哪个部分的说明文字 

: STRING 8  ----à表示是第 8 项字符串  

 

// XXX: XXX (XXX), XXXX (XXXXX)   //表示该行是注释行,用来说明这段字符串是哪部分的说明文字该行只是在WE里制作地图时参考用,我们不需要翻译,翻译了也不会反映到地图里,是浪费时间

: // Abilities: A029 (Sprint) ----à 表示是 技能: A029 (冲刺)

 

 

{     {是表示从下面第一行开始就是实际的说明文字, 不动

 

XXXXXX.  这是我们要翻译的具体文字了.

: Increases movement speed by 52% for 20 seconds.

翻译成20 秒里 增强 52% 的移动速度. (具体翻译习惯方法不在该帖讨论)

 

}      }是说明文字的结束标识, 不动

 

 

 

下面是个完整的例子:

STRING 8

// Abilities: A029 (Sprint), Ubertip (Tooltip - Normal - Extended)

{

Increases movement speed by 52% for 20 seconds.

}

 

 

最后结果:

STRING 8

// Abilities: A029 (Sprint), Ubertip (Tooltip - Normal - Extended)

{

20 秒里 增强 52% 的移动速度

}

 

 

 

不用翻译的部分:

 

对于玩过的地图,可以通过判断有选择的翻译,换句话说就是有部分文字是不用翻译的

 // 后面的 英文,表示这是那类设置的说明文字,你可大致判断这是哪部分文字

 

Units:  单位

Doodads:  装饰物

Destructibles: 可破坏物

Items: 物品

Abilities:  技能

Buffs/Effects: 魔法效果

Upgrades: 升级/科技

 

 

具体下面一些不用翻译:

 

编辑器后缀

STRING 1623

// Abilities: A049 (Cluster Launch), EditorSuffix (Editor Suffix)

{

(beginner unit)

}

 

热键

STRING 1581

// Abilities: A017 (Satchel Detonate (satchel)), Hotkey (Hotkey - Normal)

{

D

}

 

换行符

STRING 1433

{

|n

}

 

作者名

STRING 7

{

FM_Bilouxi & FM_Osiris

}

 

升级效果

STRING 1408

// Upgrades: R00J (Animal War Training), effect2 (Effect 2)

{

rmvx

}

 

等等

 

 

我们翻译完了 war3map.wts 并检查后参看汉化必须了解的几个细节, 搞定细节问题,

之后就可以添加的地图里,启动魔兽先看看效果.记下有问题的部分

完成最后的修改后,就可以按照汉化流程完成全部工作.

 

 

 

第二层 触发器里文本的汉化(war3map.j 的汉化)

 

 

这一层在 war3map.wts 的基础上多汉化了war3map.j

看了前面的第二层,要汉化的文本的位置及汉化流程, war3map.wts 的汉化看第一层的说明,

这里用例子来讲 war3map.j 的汉化

 

 

下面以取自Night of the Dead Special Ops v1.06.w3x war3map.j里面一段代码为例:

 

call ingMinimapLocForForceEx(bj_FORCE_ALL_PLAYERS,GetRectCenter(O[bi]),10.,0,.0,'d',.0)

call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,"TRIGSTR_3456")

call EnableTrigger(ec)

call QuestSetDescription(ay[2],("In this mode, at least one member of your team must survive through 15 waves

 of enemies to win.|nCurrent wave: "+I2S(W)))

set x[11]=eL

call DestroyTrigger(el)

endfunction

function mn takes nothing returns nothing

call StartTimerBJ(bz,true,420.)

call DisplayTextToForce(bj_FORCE_ALL_PLAYERS,("Wave "+I2S(W)))

call EnableTrigger(ec)

call QuestSetDescription(ay[2],("In this mode, at least one member of your team must survive through 15 waves

 of enemies to win.|nCurrent wave: "+I2S(W)))

set x[12]=em

 

 

翻译后结果:

call ingMinimapLocForForceEx(bj_FORCE_ALL_PLAYERS,GetRectCenter(O[bi]),10.,0,.0,'d',.0)

call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,"TRIGSTR_3456")

call EnableTrigger(ec)

call QuestSetDescription(ay[2],("在这个模式,需要至少有一名队员在15波进攻中存活下来才能获得胜利.|n当前波数: "+I2S(W)))

set x[11]=eL

call DestroyTrigger(el)

endfunction

function mn takes nothing returns nothing

call StartTimerBJ(bz,true,420.)

call DisplayTextToForce(bj_FORCE_ALL_PLAYERS,("波次: "+I2S(W)))

call EnableTrigger(ec)

call QuestSetDescription(ay[2],("在这个模式,需要至少有一名队员在15波进攻中存活下来才能获得胜利.|n当前波数: "+I2S(W)))

set x[12]=em

 

 

需要说明:

"TRIGSTR_3456" 为没有替换的字符串原始引用标识  

它的功能是游戏在玩到此处时调用war3map.wts 里面编号为 STRING 3456 的说明文字

 

 

对应的Night of the Dead Special Ops v1.06.w3x war3map.wts 里面(翻译方法同第一层汉化)

 

STRING 3456

{

LtCol Raynor: ull back!!!! ull baaaack!!! |cffff0000 .... Transmission Lost

}

 

 

翻译后为:

 

STRING 3456

{

Rayor中校:后退!后退!他妈的都给我后退!!! |cffff0000 .... 传染消除

}

 

 

当然也可这样处理不推荐,不方便升级版本的汉化,自己能做专用工具例外)

call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,"TRIGSTR_3456")

call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.," Rayor中校:后退!后退!他妈的都给我后退!!! |cffff0000 .

... 传染消除")

 

 

 

最后需要特别注意(这个需要经验):

 

判断war3map.j 双引号中间的内容是要翻译的文本还是变量,常量或函数名. 错误翻译将导致魔兽出错!!!

双引号用于标识双引号之间的部分为一个引用段,留意双引号是否成对.

双引号还必须是半角引号(英文的双引号),不正确将导致魔兽出错!!!

 

不可翻译的部分: (还是以SO 1.06 为例):

 

if GetStoredInteger(bj_lastCreatedGameCache,"SelectionUnit",GetHeroProperName(c[PN]))==Bi[PN]-1 then

"SelectionUnit" ---->  为变量

 

return(OrderId2StringBJ(GetIssuedOrderId())=="attack")or(OrderId2StringBJ(GetIssuedOrderId())=="smart")

"attack"  ---->  为相关单位的动作命令 此处命令为攻击

 

call SetUnitAnimation(GetTriggerUnit(),"Stand Victory")

"Stand Victory" ---->播放单位动画  此处为僵尸复活后的初始姿势即调用僵尸模型的站立动作

 

call MultiboardSetItemIconBJ(l,2,1,"war3mapImported\\Medal12_Medal_of_Honor.blp")

"war3mapImported\\Medal12_Medal_of_Honor.blp"  ---->设置项目图标  此处为调用荣誉勋章的图片

 

等等

 

 

提供部分与文字有关的函数可做为手工汉化参考,看前面的例子)

 

DisplayTextToPlayer="对玩家显示文本消息(自动限时) [R]"

DisplayTimedTextToPlayer="对玩家显示文本消息(指定时间) [R]"

DisplayTextToForce="对玩家组显示文本消息(自动限时)"

DisplayTimedTextToForce="对玩家组显示文本消息(指定时间)"

CreateQuestBJ="创建任务"

 

 

对于双引号是否成对的问题,我是通过用JASS编辑器 JassCraft 来检查的.

 

 

 

我们翻译完了 war3map.wts  war3map.j 并检查后参看汉化必须了解的几个细节, 搞定细节问题,

之后就可以添加的地图里,启动魔兽先看看效果.记下有问题的部分

完成最后的修改后,就可以按照汉化流程完成全部工作.

 

 

 

第三层 各设置里文本的汉化(war3map.w3? war3map.skin 的汉化)

 

 

这一层最主要的区别是, war3map.wts 的 字符串被分解到war3mapskin.txt war3map.w3? 系列文件里,相同的文件汉化看前面.

 

通过前面的流程可以知道, 对于 war3map.w3? 系列文件的汉化,

我是把各文件里的字符串又提取出来并汇总到一个新的 ***.wts 文件来处理的

 

这里将主要谈war3map.w3? 系列文件, war3mapskin.txt war3map.w3i 处理过程的一些细节

(有相关介绍帖,原本一笔带过,考虑到整体的完整性,补上)

 

 

 

对于 war3map.w3? 系列文件的汉化

 

war3map.w3? 系列文件的汉化步骤:

1. 生成数据地图

2. 导出字符串

3. 翻译

4. 导入字符串

5. 导出设置文件(war3map.w3? 系列文件) 

 

 

首先说明: DataMapGen的作用只是把要处理的文件提取出来,并生成了一个新的数据地图(我们手工也可以完成,只是要麻烦些)

生成数据地图步骤:

点右边的省略号 ..

在选择对话框里找到要汉化的地图双击该地图

此时 DataMapGen 的文本框 显示的 该地图的路径

点击 Generate Data Map

在保存对话框里,输入生成的数据地图名字,随便你用什么名字(我通常是地图简写加版本号)

 Night of the Dead Special Ops v1.05.w3x 为例子 数据地图名我用的是 SO105.w3x

需要注意的是: 

DataMapGen不自动追加扩展名,需要自己添加扩展名 .w3x(冰封王座地图的扩展名),否则WE看不到数据地图.

 

 

我们把得到的数据地图用WE 打开( WE来把地图里各war3map.w3? 文件的字符串提取出来)

再利用WE 导出字符串的功能把war3map.w3? 系列文件里的字符串汇总并导出到一个新的 ***.wts 文件

导出字符串步骤:

点击WE的工具栏中文件下拉列表(快捷键 ALT + F )

导出字符串(快捷键 G 再 回车 )

在保存对话框里(魔兽争霸III字符串),输入生成的字符串文件名字,随便你用什么名字(我通常是地图简写加版本号)

 Night of the Dead Special Ops v1.05.w3x 为例子 新的 ***.wts 文件名我用的是 SO105.wts

 

最后生成的 SO105.wts 文件的翻译规则和第一层的 war3map.wts 翻译规则一样.

(该文件前部分和war3map.wts 内容会相同,不翻译即可,即导出的SO105.wts会把原来的war3map.wts 一起导出 )

 

翻译完成后

 

 

参考汉化流程导出各war3map.w3?文件

导出war3map.w3?文件步骤:

点击WE的工具栏中文件下拉列表(快捷键 ALT + F )

导入字符串(快捷键 I 再 回车 )

在打开对话框里(魔兽争霸III字符串),选择刚才翻译好的文件SO105.wts,打开

点击WE的工具栏中物体编辑器下拉列表(快捷键 F6 )

物体编辑器 打开后, (随你先导出哪个设置,我以单位为例)

点击物体编辑器的工具栏中文件下拉列表(快捷键 ALT + F )

导出单位设置(快捷键 E 再 回车 )

在保存对话框里,输入生成的单位设置名字, 文件名必须都是war3map ,扩展名 WE会自动追加.

 

然后继续导出下面各个设置文件:

导出物品设置

导出可破坏物设置

导出地形装饰物设置

导出技能设置

导出魔法效果设置

导出科技设置

 

 

等其他文件搞定后就可一起添加到地图里了

 

我没有截图,所以专门附上了快捷键,你找不到可以直接按快捷键

 

还搞不懂具体导出字符串步骤的朋友可以看下面给的链接,该帖作者做了截图

(上面那么详细的步骤如果还搞不懂,那电脑方面的知识就需要恶补了.)

地图汉化傻瓜教程(附图)  vinxu 2007-5-2 19:25 

 

 

对于 war3mapskin.txt 的汉化

 

它是配置文件格式,由三部分构成

[CustomSkin] -------à 游戏界面的各部分图片引用位置,不可动,否则游戏界面很可能残缺

[FrameDef] -------à 关于界面的各种说明文字

[Errors] -------à 系统信息说明文字

 

 

下面是各部分的处理例子:

[CustomSkin]

InfoPanelIconDamageChaos=war3mapImported\Fire.blp   -------à不可动

InfoPanelIconDamageChaosNeutral=war3mapImported\Fire.blp   -------à不可动

 

 

[FrameDef]

 DOTA  6.43b中文版为例:

UPKEEP_NONE=|Cff00ff00Ice Frog|r出品   -------à 游戏界面右上说明文字

RESOURCE_UBERTIP_UPKEEP=DotA Allstars 6.43b中文版|n   -------à 游戏界面右上说明的详细提示

 

以余波 1.5 为例:

UPKEEP_NONE=|cff8b864e1.5|r

RESOURCE_UBERTIP_UPKEEP=NOTD Aftermath is produced by Starlite. It is the most downloaded survival map and was awarded Spotlight Map status by Blizzard in May 2006. |n|nWe are continuously seeking feedback and contributions. |n|n|cff99ccffWebsite:|r www.notd-aftermath.com

 

翻译后结果:

UPKEEP_NONE=|cff8b864e余波 1.5 中文版|r

RESOURCE_UBERTIP_UPKEEP=NOTD 余波 由 Starlite 出品它是下载量最大的生存类地图并在 2006 5月被暴雪评为经典地图.|n|n|cff99ccff官网:|r www.notd-aftermath.com |n|n|cff99ccff中文论坛:|r www.52night.com/bbs

 

 

 

[Errors]

以余波 1.5 为例:

Cooldown=ALICE : System is in cooldown. lease hold.

HPmaxed=Marine has full health.

 

翻译后结果:

Cooldown=ALICE : 系统冷却中请等待.

HPmaxed=陆战队员很健康.

 

 

下面部分不可翻译(war3map.j 汉化时已经谈到过):

 

[FrameDef]

BONUS_ATTACK_SPEED=TRIGSTR_2871

BONUS_DAMAGE=TRIGSTR_2874

BONUS_HPREGEN=TRIGSTR_2878

 

 

对于 war3map.w3i(读图介绍)的汉化

 

最初我是用W3Mmaster来处理,W3Mmaster 不支持 玩家名字和队伍直接汉化,我是用UltraEdit 直接十六进制编辑的.

后来的余波是用我自己的汉化工具来处理war3map.w3i ,上个月看到ShadowEditor支持玩家名字和队伍直接汉化,

所以,对于只处理war3map.w3i 来说,ShadowEditor来处理更方便.

 

如果地图介绍被分解到 war3map.w3i里面了DataMapGen 提取文件时war3map.w3i 是被忽略的,

这涉及到读图模型(不展开),因为war3map.w3i 的缺失,所以要单独处理.

ShadowEditor打开要汉化地图,把里面的相关项目翻译替换掉后保存

 

 

 

我们翻译完了 war3map.wts, war3map.j, war3mapskin.txt并检查后,加上导出的各war3map.w3?文件

参看汉化必须了解的几个细节,搞定细节问题,然后就可以添加的地图里,启动魔兽先看看效果.记下有问题的部分

完成最后的修改后,就可以按照汉化流程完成全部工作.

 

 

 

汉化必须了解的几个细节

 

 

前面提到,我下面又提到的方面就是汉化需要特别注意的问题,这些细节都是我用大量的时间不断修改错误而总结出来的,

期望后来的朋友不要再走弯路.

 

 

首先是字符串的编码问题魔兽里的中文字符(简体和繁体)只能以 UTF-8 编码格式才能正常显示.

引用暗影贤者的话,简单讲 UTF-8 编码格式就是为了让全世界都能正常显示中文的编码格式(只是比喻,解释不准确)

我们通常的文本编码格式是: ANSI/ASCII,如果以该格式保存到魔兽地图里,中文字符将变成乱码

需要用我提到的文本编辑器,在另存里可以看到编码 UTF-8 ,保存为UTF-8 格式. UTF-8 格式指上面提到在地图里的所有文件.

再次提醒:所有中文字符都必须是以 UTF-8 编码格式保存到地图里, 否则出现在游戏中将是乱码.

(虽然我在这个方面没犯错误,但电脑知识弱点的朋友会经常犯这个错误)

 

 

换行方式方面有时我们用文本编辑器编辑文件后会把文件保存为 DOS 格式.如果你不是特别在乎地图的大小可忽略该细节.

对于几个格式的区别,只需知道DOS/WINDOWS 的格式会比UNIXMAC 格式每行多一个字节就可以了.

直观讲就是,一个600k war3map.j 用 DOS/WINDOWS 格式会比UNIXMAC 格式多十几的大小

NOTD 系列地图都是 MAC格式

 

 

打不开地图前面提到,我们用工具把地图打开(MPQMaster或其他工具,就像用 RAR 那样),有时会打不开地图

是因为作者为保护地图,而利用MPQ工具的一个特性,加密了文件头,以前需要手工十六进制修改,

现在可用 ShadowEditor 来修复文件头,只有在用MPQ工具来处理地图里各文件

 

 

Jass的处理这个需要经验,来判断双引号中间的内容是要翻译的文本还是变量,常量或函数名. 错误翻译将导致魔兽出错!!!

     双引号留意双引号是否成对.再次提醒,双引号必须是半角引号(英文的双引号),不正确将导致魔兽出错!!!

 

 

语言习惯及缩写这主要指war3map.j里的剧情文本,需要翻译完后,进入游戏后来看效果,或在war3map.j 检查(要熟悉Jass).

 

 

翻译的格式处理包括单位,物品,技能,效果,升级的格式,追求完美效果可参考.

 

热键代码含义(|cffffcc00R|r)

|cffffcc00:颜色代码

R:热键名(或需要改变颜色的文本)

|r:颜色结束标识

(): 突出热键

|r :表示颜色结束标识. 翻译时经常被弄丢,导致显示不正常

 

 (|cffffcc00R|r)的显示效果: (R)

 

另外:在一段文本中常常看到 |n

|n :表示|n后面的文字将显示在下面一行的开始处翻译时也经常被弄丢

 

 

下面是几种常用的格式:

技能名

Cluster Rockets              --->火箭群

 

 

技能名(热键)

Sea|cffffcc00r|ring Arrows   --->灼热之箭(|cffffcc00R|r) 

热键 r 已经变成大写并加了括号翻译时经常忘记变成大写

 

 

技能名(热键) - [热键等级]

In|cffffcc00c|rinerate - [|cffffcc00Level 1|r]        --->燃灰(|cffffcc00C|r) - [|cffffcc00等级 1|r]

 

 

学习技能名(|cffffcc00热键|r) - [|cffffcc00等级 热键等级|r]

Learn In|cffffcc00c|rinerate - [|cffffcc00Level %d|r] --->学习燃灰(|cffffcc00C|r)- [|cffffcc00等级 %d|r]

 

 

自动施放技能:

|cffc3dbffRight-click to activate auto-casting.|r    --->|cffc3dbff点击右键以激活自动施放功能。|r

|cffc3dbffRight-click to deactivate auto-casting.|r  --->|cffc3dbff点击右键以取消自动施放功能。|r"

 

 

学习技能文本:

Breathes a cone of fire at enemy units which deals damage. Units that have Drunken Haze on them will ignite and take burn damage over time. |nLasts <ANbf,Dur1> seconds. |n|n|cffffcc00Level 1|r - <ANbf,DataA1> initial damage, <ANbf,DataE1> damage per second. |n|cffffcc00Level 2|r - <ANbf,DataA2> initial damage, <ANbf,DataE2> damage per second. |n|cffffcc00Level 3|r - <ANbf,DataA3> initial damage, <ANbf,DataE3> damage per second.

 

--->对敌人吐出一道火焰,在一开始对其就造成伤害之后,如果对方身上有醉酒云雾的话那还能在一定时间内持续地对其造成伤害。|n持续<ANbf,Dur1>秒。 |n|n|cffffcc00等级 1|r -最初造成<ANbf,DataA1>点的伤害,随后造成每秒<ANbf,DataE1>点的伤害。|n|cffffcc00等级 2|r -最初造成<ANbf,DataA2>点的伤害,随后造成每秒<ANbf,DataE2>点的伤害。|n|cffffcc00等级 3|r -最初造成<ANbf,DataA3>点的伤害,随后造成每秒<ANbf,DataE3>点的伤害。

 

 

 

 

为避免过多的重复,有些基础的方面没有谈到,请参考汉化推荐帖!!

如果你曾经汉化过地图或看过下面的帖子,可忽略推荐帖这部分

如果你看了上面有许多地方还不大明白的地方,可以看看下面的帖子,再返回来看可能理解就更深了


如果掌握上面讲的三个层次的汉化知识,已经可以应付目前大部分地图的汉化工作了.

下面的内容将谈更深入的细节部分,且一般的汉化者不大会用到,没有汉化制作过地图的朋友看了可能会不理解,推荐先尝试汉化一个地图,之后再来看下面部分,会对你有更大帮助.

回复

使用道具 举报

71

主题

238

回帖

4125

积分

管理员

积分
4125
 楼主| 发表于 2014-11-7 20:45:48 | 显示全部楼层

第二部分第四层 SLK地图的汉化

 

魔兽的数据

字符串分布位置及手工汉化流程

确定需要汉化的项目

Units里文件的汉化(***String.txt)

背景图片里文字的处理

 

 

 

我接触到的第一个SLK地图是在 2005年玩到的 NOTD 1.3,后来还接触到了 DOTA  NOTD AM.

直到 06年 夏天,我才开始汉化这类地图并在 0610月开始在中文地图里使用 SLK技术(NOTD 1.4 Beta)

 

虽然PitzerMike推出 Widgetizer 已经两年多了,但实际上大家使用的还是很少的.

到目前为止,我所看到的优秀的SLK地图不过是DOTA  NOTD

当然,也可能是部分优秀地图作者考虑到各国语言版本的汉化方便,多只用vexorian Wc3MapOptimizer 优化地图.

 

 

 

下面简单说一些深入点的知识以了解其结构,便于理解汉化过程.

 

 

魔兽的数据:

 

 

MPQ:早在星际争霸,暗黑破坏神等游戏里,暴雪公司就开始把游戏要用到的素材打包,放到一个后缀为.mpq的压缩包里.

星际争霸的StarDat.mpq 

 

而魔兽的相关数据储存在war3.mpq, War3x.mpq, War3xlocal.mpq, War3Patch.mpq的相关目录里.

并以下面格式储存:

  ***Func.txt(图标信息)

  ***.slk(单位,物品,技能参数等)

  ***.mp3(背景音乐,战役对话等)等等

 

而文字介绍信息的原始储存格式文件是  ***String.txt

 

 

前面讲过魔兽地图也是这种格式的压缩包,但地图里的war3map.w3?系列文件是WE生成地图的数据储存方式.

所以,

当我们开始读取魔兽地图时,魔兽会把war3map.w3?系列文件 里面的数据进行分解,以匹配魔兽原始的数据格式

然后在读取数据时,当遇到MPQ里和地图的相同项目时,则优先采用地图里的该项目数据.

直至完成地图数据的读取.

 

 

 

字符串分布位置及手工汉化流程

 

 

我们通过对魔兽读图过程了解,知道Widgetizer 的功能是把 war3map.w3?系列文件进一步分解成 ***String.txt,

 ***Func.txt, ***.slk 以匹配魔兽原始的数据格式,减少了地图在加载数据时的分解步骤,即减少了读图时间.

 

我们期待优化后的最好的结果是war3map.w3?系列文件全部被分解,这样就不用处理war3map.w3?系列文件了.

但实际情况是, Widgetizer目前不支持高于4级的技能分解及某些不规范代码,

所以会有部分项目的字符串(包括其参数)残留在war3map.w3?系列文件里.

这样,字符串就分布在地图的下列文件里.

 

  字符串分布位置(一般为32个文件):

war3map.wts 字符串,所有外文文本的原始存放位置(残留部分)

war3map.j   jass数据库,剧情文本,有部分文本会保留在war3map.wts (加密后通常在/scrtips目录下)

war3map.w3u 单位的介绍,名字等(残留部分)

war3map.w3t 物品的介绍,描述等(残留部分)

war3map.w3a 技能的介绍,每级描述等(残留部分)

war3map.w3h 魔法特效的介绍,描述等(残留部分)

war3map.w3q 升级的介绍,描述等(残留部分)

war3map.w3b 可破坏的介绍,描述等(Widgetizer默认不分解可破坏物)

war3map.w3d 装饰物的介绍,描述等(Widgetizer默认不分解装饰物)

war3map.w3i 地图信息 基本介绍
war3mapSkin.txt  界面,系统提示信息

 

以及Units目录里(一般21,Widgetizer默认不分解装饰物和可破坏物)

        CampaignAbilityStrings.txt
        CampaignUnitStrings.txt
        CampaignUpgradeStrings.txt
        CommonAbilityStrings.txt
        HumanAbilityStrings.txt
        HumanUnitStrings.txt
        HumanUpgradeStrings.txt
        ItemAbilityStrings.txt
        ItemStrings.txt
        NeutralAbilityStrings.txt
        NeutralUnitStrings.txt
        NeutralUpgradeStrings.txt
        NightElfAbilityStrings.txt
        NightElfUnitStrings.txt
        NightElfUpgradeStrings.txt
        OrcAbilityStrings.txt
        OrcUnitStrings.txt
        OrcUpgradeStrings.txt
        UndeadAbilityStrings.txt
        UndeadUnitStrings.txt
        UndeadUpgradeStrings.txt
 

Units目录里的上述文件以魔兽的种族而归类分解:

**AbilityStrings.txt 技能信息(魔法效果信息也在这类文件中)

**UnitStrings.txt 单位信息

**UpgradeStrings.txt 升级信息

ItemStrings.txt 物品信息

 

另外部分地图如DOTA ,NOTD AM 的地图介绍都直接做到了读图背景图片里,所以还要用PS 处理图片里的字符串

 

 

手工汉化流程 (该流程是目前手工处理最优方案,但可能会出现极个别参数丢失现象,产生后果很小可忽略.后面介绍完善解决方案)

 

1.  MPQMaster打开要汉化的地图,解压出 war3map.wts, war3map.j, war3mapSkin.txt, Units目录里***String.txt(一般21)

2.  DataMapGen 选择要汉化的地图,生成一个新地图(数据地图)

3. WE 打开新地图(数据地图),导出字符串 ***.wts (***为你自己命名的文件名)

4. 翻译war3map.wts, war3map.j, ***.wts(该文件前部分和war3map.wts 内容会相同,不翻译即可),

5. 根据刚才翻译前面文本的经验翻译 ***String.txt (21,许多魔兽标准项,地图未使用的部分都不用翻译)

6. 把翻译好后的 ***.wts 导入字符串到 WE 里面

7. 然后打开 WE的物体编辑器 导出 单位设置,装饰物设置,可破坏物设置,物品设置,技能设置,魔法效果设置,科技设置(文件名都是war3map)

8. 把翻译好后的war3map.wts, war3map.j, ***String.txt(21)和刚才导出的war3map.w3?系列文件

添加到地图里,替换掉原来的war3map.wts, war3map.j, ***String.txt(21), war3map.w3?系列文件

9. ShadowEditor打开汉化地图,把里面的相关项目(地图名,地图简介,部队名等)翻译替换掉

10. ShadowEditor修改文件头的地图名 (即建主机时看到的地图名)

11. ShadowEditor删除 (attributes) 文件 (该文件用于检查地图是否被修改,不删除会造成魔兽出错,而删除对游戏没有影响)

12. ShadowEditor重新压缩地图  (减少地图大小)

13. 修改文件名 (通常在文件名后加上 CN 标识,主要用作玩家在HF下载地图时识别)

14. 完成! 

 

 

从上面的汉化流程我可以看到,我把那些文件分三类来处理..

 

可以直接处理的: 

war3map.wts, war3map.j, war3mapSkin.txt, war3map.w3i, 需要用PS处理的图片(后面讲)

需要从文件里提取字符串来处理的(残留字符串的文件)(汇总成一个 ***.wts 来处理): 

war3map.w3u,war3map.w3t,war3map.w3a,war3map.w3h,war3map.w3q, war3map.w3b,war3map.w3d

Units目录里的:

 ***String.txt 系列文件

 

我在第一部分已经介绍了 可以直接处理的需要从文件里提取字符串来处理的 两类文件的汉化方法. 相同的文件汉化看前面介绍.

第一层 字符串文件的汉化(war3map.wts 的汉化)

第二层 触发器里文本的汉化(war3map.j 的汉化)

第三层 各设置里文本的汉化(war3map.w3? war3map.skin 的汉化)

 

 

下面讲 Units目录里的: ***String.txt 系列文件的处理

 

 

 

确定需要汉化的项目:

 

 

第一次看到上面那32个文件是否有头晕的感觉,特别是打开21个 ***String.txt 看看里面,更是晕呼哀哉...

初次手工汉化整理过程相当繁琐,DOTA 6.3为例21 ***String.txt 900k90万英文

 

面对庞大的信息需要处理,必须首先筛选信息,以确定哪些是需要处理的,而哪些项目是不用处理的.

如果已经玩过很多次,对游戏的细节相当熟悉了,筛选信息会有效率许多.可不用下面方法筛选,直接进入下一节.

 

无论那类地图,在单位,技能,效果,物品,科技几类信息中,技能都是翻译量最大的部分

所以,下面以技能为突破口,通过分析 UnitAbilities.slk 来先确定哪些技能和单位需要翻译

此处以不熟悉游戏的情况下,手工完成信息筛选工作.这里只能提供一些通用方法,具体情况还需要大家自己判断

 

 UnitAbilities.slk 里涉及到下面三部分数据(UnitAbilities.slk Units目录里)

unitAbilID    abilList    heroAbilList

单位技能ID    技能列表     英雄技能列表

 

 EXCEL 里打开 UnitAbilities.slk  并以heroAbilList 为关键字排序

 

下面是截取的一段数据.

unitAbilID abilList heroAbilList

Ubal AInv A00T,A0CA,A0CG,A0CT,Aamk

Hmkg AInv A011,A04W,A083,A088,Aamk

UC76 AInv A02C,Aamk,A02M,ANsi,A073

Oshd AInv A02Q,A0GK,A04V,A04Y,Aamk

H00V AInv A02V,A0G2,A0MP,A012,Aamk

H00F A0O4,AInv A03G,A03F,Aamk,A0AR,A0CL

H00E AInv A03G,A03F,Aamk,A0AR,A0CL

Hlgr AInv A03G,A03F,Aamk,A0AR,A0CL

H00G AInv,Afrb A03G,A03F,Aamk,A0AR,A0CL

U00A A00R,AInv A03O,A03N,A0K9,A055,Aamk

Uanb AInv A03V,Aamk,A04G,A0AS,A08O

E004 AInv A04Q,A025,A030,Aamk,AHfa

Hgry Asth

hgyr Agyb,Agyv,Aflk

hkni Aihn

hmil Ahar,Amil,Ahrp

hmpr   Ahea,Ainf,Adis,Aihn

 

 

heroAbilList 中有4个以上代码的行,多为我们游戏中要控制的英雄或 NPCBOSS

前面绿色的,DOTA各酒馆的英雄

unitAbilID 里的项目是游戏中选择英雄看到的介绍. 需要翻译

heroAbilList 里的项目是用英雄游戏时,看见的技能介绍. 需要翻译

abilList 里的项目为被动技能,一般情况下是看不见的. 可不翻译

 

对于NPC BOSS

unitAbilID 里的项目是游戏中选择英雄看到的介绍. 需要翻译

heroAbilList 里的项目的技能,一般情况下是看不见的.(MH除外) 不用翻译,

 

 

heroAbilList 中没有技能代码的行,多为一般NPC

后面蓝色的,为一般的小怪,野怪(没有检查,推测而已)

unitAbilID 里的项目是游戏中看到的NPC,视情况翻译

abilList 里的项目一般为被动技能,一般情况下是看不见的.  不翻译

 

 

 

我们还需要了解代码的几个规则来进一步筛选:

 

首先

单位,技能,效果,物品,科技几个类别的代码识别是通过的第一个字母来区分的:

 

单位 H,O,E,U,N

技能 A : Obla

物品 I : Aamk A04Q

效果 B : Bvng

科技 R : Rura

 

其中单位又分为几个种族

人族 : Hblm

兽族 : Obla

暗夜 : Edmm

不死 Ubal

中立 : Npbm

 

 

其次

代码 根据数据修改的情况分为:

原始标准项目(包括修改过的标准项目): 部分可不翻译(对于标准项目,我是用工具直接读取魔兽中文版的数据进行替换的)

Hlgr Uanb hkni Edmm Aamk Bvng Rura

 

自定义项目: 基本都要翻译(个别弃用代码不用翻译)

U00A n00Y A04Q A03G H008 B00Z R004

 

 

单位 根据英雄属性还分为:

英雄单位第一个字母是大写最少也要翻译英雄名字

Hlgr U00A Uanb

 

一般单位第一个字母是小写根据情况可不用翻译

hmil u001 n00Y

 

另外

效果还有个规则与其对应技能的代码后3个字母是相同的.怎么用看自己了

:

复仇之魂

技能:[AEsv]

效果:[BEsv]

 

 

 

最后

在一般情况下,效果,科技的数量都不多,且区别哪些在游戏中不会看到较烦琐,

我的观点是都翻译,且用工具替换后翻译多余的项目会很少.

 

 

 

Units里文件的汉化(***String.txt):

 

 

通过上面讲的,我们大致知道了哪些信息是需要处理的.

这里谈的是Units目录里的 ***String.txt 文件中那些需要处理的项目中涉及的子项目的处理规则

下面是 ***String.txt 系列文件中我们汉化需要涉及的项目(不是都要处理)

 

单位: ***UnitStrings.txt

Name,Tip,Ubertip,Hotkey,Propernames,Revivetip,Awakentip,Casterupgradename,Casterupgradetip,EditorSuffix

 

技能: ***AbilityStrings.txt

Name,Tip,Ubertip,Hotkey,Researchtip,Researchubertip,Researchhotkey, Untip,Unubertip,Unhotkey,Bufftip,Buffubertip,EditorSuffix

 

科技: ***UpgradeStrings.txt
Name,Tip,Ubertip,Hotkey,EditorSuffix

 

物品: ItemStrings.txt

Name,Tip,Ubertip,Hotkey,Description,EditorSuffix

 

 

常常需要翻译的子项目

Name --->项目名

Tip --->项目提示

Ubertip --->项目详细说明

Researchtip --->技能研究提示

Researchubertip --->技能研究详细说明

Bufftip --->魔法效果提示

Buffubertip --->魔法效果详细说明

Description --->物品描述

Propernames --->单位的称谓

 

 

下面几项常常被误翻:

Hotkey=F --->热键,不用翻译

Researchhotkey=F --->学习热键,不用翻译

EditorSuffix= (Upgrade Level 1)  --->编辑器扩展(用于在WE里提示用,不用翻译)

 

 

翻译的格式处理

第一层的汉化提到的规则和汉化细节里的翻译的格式处理提到的热键,特殊标识符部分不再重复,该部分主要针对SLK地图.

 

需要注意(有许多的文本显示问题都因为没按下面要求引起.):

逗号多用于多级技能的介绍,作为不同级别技能的文本分隔标识必须是半角逗号(英文的逗号)

双引号多用于多级技能的介绍,用于标识双引号之间的部分为一个引用段,特别是这个引用段内包含逗号时,(所以我全都打上)

留意双引号是否成对.双引号必须是半角引号(英文的双引号)

    手工解决办法是,在文本编辑器里用半角双引号,逗号全部替换掉全角双引号逗号

 

下面是例子:

 

Name --->项目名

Name=Breath of Fire

Name=火焰呼吸

 

 

Tip --->项目提示

Tip=Breath of |cffffcc00F|rire - [|cffffcc00Level 1|r],Breath of |cffffcc00F|rire - [|cffffcc00Level 2|r],Breath of |cffffcc00F|rire - [|cffffcc00Level 3|r]

Tip=火焰呼吸(|cffffcc00F|r) - [|cffffcc00等级 1|r],火焰呼吸(|cffffcc00F|r) - [|cffffcc00等级 2|r],火焰呼吸(|cffffcc00F|r) - [|cffffcc00等级 3|r]

 

 

Ubertip --->项目详细说明

Ubertip="Breathes a cone of fire at enemy units, dealing <ANbf,DataA1> initial damage. Units that have Drunken Haze on them will ignite and burn for <ANbf,DataE1> damage per second over <ANbf,Dur1> seconds.","Breathes a cone of fire at enemy units, dealing <ANbf,DataA2> initial damage. Units that have Drunken Haze on them will ignite and burn for <ANbf,DataE2> damage per second over <ANbf,Dur2> seconds.","Breathes a cone of fire at enemy units, dealing <ANbf,DataA3> initial damage. Units that have Drunken Haze on them will ignite and burn for <ANbf,DataE3> damage per second over <ANbf,Dur3> seconds."

 

Ubertip="对敌人呼出带有攻击力的火焰。最初造成<ANbf,DataA1>点的伤害。并在<ANbf,Dur1>秒内持续受到每秒 <ANbf,DataE1>点的伤害。","对敌人呼出带有攻击力的火焰。最初造成<ANbf,DataA2>点的伤害。并在<ANbf,Dur2>秒内持续受到每秒<ANbf,DataE2>点的伤害。","对敌人呼出带有攻击力的火焰。最初造成<ANbf,DataA3>点的伤害。并在<ANbf,Dur3>秒内持续受到每秒<ANbf,DataE3>点的伤害。"

 

 

Researchtip --->技能研究提示

Researchtip="Learn Breath of |cffffcc00F|rire - [|cffffcc00Level %d|r]"

Researchtip="学习火焰呼吸(|cffffcc00F|r) - [|cffffcc00等级 %d|r]"

 

 

Researchubertip --->学习技能详细说明

Researchubertip="Breathes a cone of fire at enemy units which deals damage. Units that have Drunken Haze on them will ignite and take burn damage over time. |nLasts <ANbf,Dur1> seconds. |n|n|cffffcc00Level 1|r - <ANbf,DataA1> initial damage, <ANbf,DataE1> damage per second. |n|cffffcc00Level 2|r - <ANbf,DataA2> initial damage, <ANbf,DataE2> damage per second. |n|cffffcc00Level 3|r - <ANbf,DataA3> initial damage, <ANbf,DataE3> damage per second."

 

Researchubertip="对敌人吐出一道火焰,在一开始对其就造成伤害之后,如果对方身上有醉酒云雾的话那还能在一定时间内持续地对其造成伤害。|n持续<ANbf,Dur1>秒。 |n|n|cffffcc00等级 1|r -最初造成<ANbf,DataA1>点的伤害,随后造成每秒<ANbf,DataE1>点的伤害。|n|cffffcc00等级 2|r -最初造成<ANbf,DataA2>点的伤害,随后造成每秒<ANbf,DataE2>点的伤害。|n|cffffcc00等级 3|r -最初造成<ANbf,DataA3>点的伤害,随后造成每秒<ANbf,DataE3>点的伤害。"

 

 

Bufftip --->魔法效果提示

Bufftip=Incinerate 

Bufftip=燃灰

 

Buffubertip --->魔法效果详细说明

Buffubertip="This target is partially aflame, and will incinerate if it dies, causing damage to nearby units."

Buffubertip="这个单位处于了烈焰之中,在死去之后会对周围的单位造成一定的伤害。"

 

 

Description --->物品描述

Description="Allows reincarnation upon death."

Description="能让携带者重生。"

 

 

Propernames --->单位的称谓

Propernames=Mojo Dark-Ale,Sinjo Honeybrew,Kesha Wildbarley,Tatsa Sweetbarrow,Mushi Ale-Hearth,Jinto Reedwine

Propernames=魔杰-黑啤酒,辛杰-蜜酒,克沙-野麦,塔特萨-甜猪,姆斯-酒炉,金托-芦苇酒

 

 

Untip<>Unubertip --->自动施放技能

Untip="|cffc3dbffRight-click to activate auto-casting.|r"

Untip="|cffc3dbff点击右键以激活自动施放功能。|r"

 

Unubertip="|cffc3dbffRight-click to deactivate auto-casting.|r"

Unubertip="|cffc3dbff点击右键以取消自动施放功能。|r"

 

 

 

 

我们翻译完了Units目录里的***String.txt 系列文件

war3map.wts, war3map.j, war3mapskin.txt并检查后,加上导出的各war3map.w3?文件

参看汉化必须了解的几个细节,搞定细节问题,然后就可以添加的地图里,启动魔兽先看看效果.记下有问题的部分

完成修改后,就可以按照汉化流程完成全部工作.

 

 

 

补充:有些优秀地图还会涉及下面的背景图片里文字的处理.

 

 

背景图片里文字的处理

 

 

许多优秀地图的背景介绍放在读图背景图片里,我们需要把图片提取出来处理.

提取出来的图片,其格式一般为 *.BLP *.TGA 两种

对于 *.BLP ,还需要用工具将其转换为PS可编辑格式

 

背景图片的处理步骤

1.  MPQMaster打开要汉化的地图,解压出背景图片 ***.blp(***.tga),[如果背景图片为***.tga,2.4.两步可忽略]

2.  Warcraft 3 Viewer v2.3c 或其他工具 ***.blp 转换为PS可编辑的格式(我通常用BMP)

3.  修改(参看PS教程) ,完成后保存为 ***.bmp(.tga)

4.  Warcraft 3 Viewer v2.3c 或其他工具 ***. Bmp 转换为***.blp 

5.  做好的背景图片添加到地图里,替换掉原来的背景图片

6. 完成!

 

 

魔兽只支持最大512*512尺寸的背景图片有些是背景图片是一张图片拉伸而成,显示效果不好

高质量的背景图片一般是由 4张图片拼接而成,OTA, NOTD AM

 

如果找不到图片,可以查看,地图根目录里的 LoadingScreen.mdx 

魔兽一般通过读取 LoadingScreen.mdx 文件来获取背景图片的位置

 

OTA 6.43B 背景图片位置

\loadingscreenbl.tga

\loadingscreenbr.tga

\loadingscreentl.tga

\loadingscreentr.tga

 

NOTD AM背景图片位置

\UI\Glues\Loading\Backgrounds\Campaigns\BarrensExpansionQuest01-TopLeft.blp

\UI\Glues\Loading\Backgrounds\Campaigns\BarrensExpansionQuest01-TopRight.blp

\UI\Glues\Loading\Backgrounds\Campaigns\BarrensExpansionQuest01-BotLeft.blp

\UI\Glues\Loading\Backgrounds\Campaigns\BarrensExpansionQuest01-BotRight.blp

 

位置说明:

左上: Tl, TopLeft 右上: Tr, TopRight

左下: Bl, BotLeft 右下: Br, BotRight

 

 

 

 

 

 

 

 

到现在,已经介绍完手工汉化所有的情况了.

 

 

 

 

 

下面是一年多汉化魔兽地图的心得及经验不完全汇总

和有过地图汉化经历的朋友交流,分享汉化者的汉化之路

如果你从未有过汉化经历,请先熟悉前面的一二部分!

 

 

如果能坚持看到这里,说明你还是有较强的愿望了解汉化的知识的

 

手头上事情较多,以后会补充

2007-8-14 13:36:50 星期二 

 

 

优秀地图汉化之我的方案

 

我的汉化探索历程(汉化者大都遇到过类似经历)

我为什么要汉化这个地图(是否值得汉化)

资料库的整理

我的汉化工具的应用

升级版本的汉化

繁体版本的汉化

团队协作汉化

优秀地图的汉化授权

SLK 技术之我的中文地图应用探索

回复

使用道具 举报

71

主题

238

回帖

4125

积分

管理员

积分
4125
 楼主| 发表于 2014-11-7 21:04:43 | 显示全部楼层
由于是转发帖子,原帖发布已经有些年份,发布者的网盘资源也失效
以上内容循序渐进,由浅至深的解剖汉化步骤.如还有不懂的地方可加Q群  9430184,乐意为你指点.


推荐个比较齐全的汉化工具。

百度云附件:魔兽改图一条龙.zip   

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

0

主题

4

回帖

21

积分

见习守卫

积分
21
发表于 2015-11-1 16:51:04 | 显示全部楼层
还得回英语啊。不然机翻汉化又要被骂
回复

使用道具 举报

71

主题

238

回帖

4125

积分

管理员

积分
4125
 楼主| 发表于 2015-11-1 19:09:13 | 显示全部楼层
啦啦啦啦 发表于 2015-11-1 16:51
还得回英语啊。不然机翻汉化又要被骂

不完全是机翻。机翻个大概,自己再组句子。
回复

使用道具 举报

1

主题

1

回帖

7

积分

见习守卫

积分
7
发表于 2016-12-29 09:38:48 | 显示全部楼层
那个。。。我把地图解压打开发现里面没有单位、物品、buff、升级的.w3?文件,即war3map.w3u war3map.w3t war3map.w3b war3map.w3h war3map.w3q文件还有war3map.wts也没有。用we物品编辑器打开技能文件war3map.w3a却发现自定义技能一个都没有,其它技能也是已经默认是中文的。这要怎么解决?
回复

使用道具 举报

0

主题

4

回帖

16

积分

见习守卫

积分
16
发表于 2017-3-19 12:53:12 | 显示全部楼层
顶个 我现在机翻加自己理解来改文字
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.5|© 2001-2024 Discuz! Team.

Archiver|手机版|小黑屋|魔兽地图汉化社区 WC3CNG | GMT+8, 2024-4-25 16:51 , Processed in 0.718750 second(s), 5 queries , Redis On.

快速回复 返回顶部 返回列表