研究了一下,案宗CaseBook系列,终于实现了汉化。, A6 _: J$ I9 f' u# ?3 w
这个游戏的字库有一点特殊,是使用.swf格式的字库,不过好在游戏预先为我们
# S: O3 h C5 N% A准备好了繁体的中文字库,我们直接使用就是了。
4 u: m& E) q9 K$ L" j. G2 J
2 R6 l+ ~' G/ i我在网上找了一个反编译工具,swf反编译器Sothink SWF Decompiler4.4绿色版
+ L; u- W% L- N8 dhttp://jjdx.downbai.com:888/200809/ha_SWFDecompiler.rar
$ h7 O$ I0 g3 i% w4 |* J用这个工具可以看见.swf文件中包含有字体和文本。 * U# n* F& \. k
* z+ V5 v! |2 W
汉化方法如下, i. b+ x: D5 G% u0 U
Casebook\Data\GUI\Localisation下面放的是各种语言的字库,我们把fonts_en.swf改名。# _, g3 g4 F( V# q- y+ s3 M
然后把fonts_cn.swf改名为fonts_en.swf,这样改了以后,游戏随然在使用fonts_en.swf,实际上的内容已经是繁体中文字库了。* j# k7 ]$ }' ?+ p; l0 N" b
& \$ G" \6 p& f D$ G1 a) i
修改 Casebook\Data\InitialiseGame.lua6 T( d3 O q/ L+ Q, B
把
: X: s; {' n1 h- N' e" \& oGetGUIModule():RegisterFontLib("English", "GUI/Localisation/fonts_en.swf");
$ g y9 H* O2 TGetGUIModule():RegisterFontMap("English", "$HandwrittenFont", "Timtastic!", "NORMAL");
" x" d9 U* z! S) ~: A1 I0 T! XGetGUIModule():RegisterFontMap("English", "$TitleFont", "Haettenschweiler", "NORMAL");; e5 g+ |$ H' h+ p( a/ d6 t* ?* s( J
GetGUIModule():RegisterFontMap("English", "$NormalFont", "Arial Unicode MS", "NORMAL");+ j2 }3 @: \+ [( K- Z& }: l* U
GetGUIModule():RegisterFontMap("English", "$SmallFont", "Tahoma", "NORMAL");7 N4 i; s s( y0 v# B Y
GetGUIModule():RegisterFontMap("English", "$TypeFont", "CarbonType", "NORMAL");+ B% s" G2 f* c' o) ?2 B
GetGUIModule():RegisterFontMap("English", "$LabelFont", "Dymo", "NORMAL");
9 {: b# M" l3 J% y8 R" s8 }改为
! Z6 W3 v, R+ T9 GGetGUIModule():RegisterFontLib("English", "GUI/Localisation/fonts_en.swf");: W% D0 ?3 D: {9 R
GetGUIModule():RegisterFontMap("English", "$HandwrittenFont", "Arial Unicode MS", "NORMAL");
' T6 W8 c( A) gGetGUIModule():RegisterFontMap("English", "$TitleFont", "Arial Unicode MS", "NORMAL");0 @3 M U; p( h @1 F
GetGUIModule():RegisterFontMap("English", "$NormalFont", "Arial Unicode MS", "NORMAL");
* D, k7 |7 x( \9 b* P- x! IGetGUIModule():RegisterFontMap("English", "$SmallFont", "Arial Unicode MS", "NORMAL");1 C, P. m7 C/ j/ s
GetGUIModule():RegisterFontMap("English", "$TypeFont", "Arial Unicode MS", "NORMAL");2 I' Q$ a5 F" a1 B7 `3 y3 v$ F
GetGUIModule():RegisterFontMap("English", "$LabelFont", "Arial Unicode MS", "NORMAL");
4 K- x7 N% d" J0 K1 I% b' e5 ~& k1 \& G& r7 f+ p* o2 _
字幕文件在9 W G3 ^: \# C
Casebook\Data\Episodes\GoHome\GUI\Localisation\English
( [# r# i/ Q( T和Casebook\Data\GUI\Localisation\English下面,用繁体中文写入,utf-16编码保存即可。; s8 w. R) ~4 \& E3 N
注意,不能用简体中文,否则会出现如下图左面的方块。; T/ o! Y; d5 M7 W0 m( {
3 D4 h! O6 U* z" `2 F9 l汉化抓图如下
0 N4 s* h, ~( t3 c" R |