由于汉化内容很复杂,在这个帖子里只讨论和主菜单汉化有关的内容。 6 V; h3 t5 y4 n. \
主菜单使用一个独立的tga图片作为字库,所以要汉化主菜单只要把tga图片里字母的样子修改掉就可以了。 ' ]- L# `2 [1 ^) q3 \0 S* n' O: E! p
$ c' D/ p1 C8 j
前期准备
5 c8 l) |5 m' z' y3 b; y1.找一个和主菜单的字体风格相同的中文TTF字体。
* |+ b, i# m, E0 h2.对英文主菜单的字体的高度和宽度进行研究,寻找出适合的中文字体的高度和宽度。
0 Q% J) S) C. K+ d; J% r/ F3.在字幕文件中找出主菜单字幕ID和字幕文本。
# l1 R ]6 ]5 ^1 h. ]* H4.翻译字幕文本。
. H2 j; e. B: ?5.统计译文中不重复的中文字的个数。 # z6 m1 Y- l8 Z# J* z
( l+ A& X! O4 K$ a0 }- t5 Z. x
字体文件初始化 ^4 U F2 E7 f& @
tga文件有2个配置xml文件,其中一个记录了每个字母在图片中的x,y坐标,宽度,高度,以及显示时的x,y方向上的修正量。配置文件的每一条记录,其实相当于给tga图片中的每个字母画上了一个看不见的
& @: d% @3 D9 K小方框。 8 L* f; v$ J T+ h% ?5 C
. X* j+ z( i2 Y$ L在前期准备中我们取得了译文中不重复的中文字的个数,以及预先设定了适合的中文字体的高度和体宽度。接下去 % {- `" g! \8 Q. B
1.修改配置文件,使配置文件和我们设定的中文相符合。 m2 o3 R2 g9 j, l; E7 X8 ]/ x( T
2.修改tga图片,把中文写到图片上。 % L$ J1 [5 |: U1 D
5 K; J6 c$ U3 x$ D$ c2 U
要做到上面2件事还是挺复杂的,下面详细说明。 6 R4 S$ m5 }$ w. s+ N. D" S7 l/ Y) Q; U
字体的参数修改以后,一行所能容纳的字符个数就和原来的不同了。 + A o5 P f) D I9 v+ O
如果一张512X512的tga图片不能容纳所有的中文字符的话,还可以扩大图片的尺寸,cegui好像还支持1024X1024的尺寸,如果还不行,可以适当修改译文,减少不重复的中文字符的个数。不过,主菜单的字幕应该不多,以上这些情况应该不会很严重。
; L7 X- J9 k/ `3 B _2 I
5 o2 U6 Y& M; y3 |# y5 N$ N/ B如何把中文字符写到tga图片上去呢?
( u1 ]. V1 K( S$ ^: l+ {! a" d& q Y' W5 x5 ?
, t. T- g6 N0 h5 [) |待续
' s4 `0 B# |% E$ _/ v0 b. [" P" J$ ?8 Y6 e0 w! _
4 b8 P( m# ?- X+ ? E/ i: o0 M
|