幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 8296|回复: 33

[NS] ONScripter如何汉化?

[复制链接]

23

主题

218

帖子

2470

积分

⑥精研

积分
2470
发表于 2007-2-11 18:30:09 | 显示全部楼层 |阅读模式
看过下代码,里面SJIS转UTF16的码表是硬编码进去的。
  1. unsigned short sjis_2_utf16[0xfcfc - 0x8140 + 1];
  2. static unsigned short sjis_2_utf16_org[][2] = {
  3.     {0x8140,0x3000},
  4.     {0x8141,0x3001},
  5.     {0x8142,0x3002},
  6.     {0x8143,0xff0c},
  7.     {0x8144,0xff0e},
  8. // 省略10000行……
  9. void initSJIS2UTF16()
  10. {
  11.     int i = 0;
  12.     while( sjis_2_utf16_org[i][0] ){
  13.         sjis_2_utf16[sjis_2_utf16_org[i][0] - 0x8140] = sjis_2_utf16_org[i][1];
  14.         i++;
  15.     }
  16. }
  17. unsigned short convSJIS2UTF16( unsigned short in )
  18. {
  19.     return sjis_2_utf16[ in - 0x8140 ];
  20. }
复制代码
莫非要把GBK/BIG5的也一个个硬编码进去??

请教各位大人,ONS汉化有没有方便点的方法?
ONScripter for PSP/Windows中文版 http://blog.163.com/john_he_
回复

使用道具 举报

18

主题

428

帖子

5260

积分

⑦老手

在美工荒中挣扎的全能

积分
5260
QQ
发表于 2007-2-11 19:00:49 | 显示全部楼层
尝试用GNU iconv?
回复 支持 反对

使用道具 举报

8

主题

72

帖子

804

积分

⑤进阶

积分
804
发表于 2007-2-11 20:13:53 | 显示全部楼层
这个好,赞一个先
回复 支持 反对

使用道具 举报

23

主题

218

帖子

2470

积分

⑥精研

积分
2470
 楼主| 发表于 2007-2-11 22:40:01 | 显示全部楼层
引用第1楼Miliardo2007-02-11 19:00发表的:
尝试用GNU iconv?

看了看iconv,的确是好东西,不过好象嵌入到ONS里也挺麻烦的……
ONS的代码感觉上很乱,看上去好像是读一个字->转换->渲染->读下一个字,iconv()应该是转换一个字符串的吧,一个个字来会不会很慢?

小弟对LINUX编程一窍不通,想请叫下大人,SDL在Windows下是独立的图形接口?还是调用DX/OGL的?运行效率相比DX/OGL如何?
ONScripter for PSP/Windows中文版 http://blog.163.com/john_he_
回复 支持 反对

使用道具 举报

18

主题

428

帖子

5260

积分

⑦老手

在美工荒中挣扎的全能

积分
5260
QQ
发表于 2007-2-11 22:51:47 | 显示全部楼层
Linux

    * 视频显示使用X11,利用XFree86 DGA扩展的优势,全屏显示使用新的w MTRR加速。
    * 声音使用OSS API。
    * 使用clone()系统调用和SysV IPC,或者glibc-2.1的pthreads实现线程。

    提示:你可以通过SDL_GetWMInfo()取得SDL驱动接口的隐藏部分,从而可以实现诸如去除窗口要素和图标化窗口等效果。

Win32

    * 有两个版本,一个是适合所有基于Win32的系统的安全版本,另一个是基于DirectX的高性能版本。
    * 安全版本的视频显示采用GDI。高性能版本采用DirectDraw,并支持硬件加速。
    * 安全版本的音频回放采用waveOut API。高性能版本采用DirectSound。

    提示:你必须在主线程中定期的读取Windows消息队列,以保持程序能够作出响应。


实际上Linux下似乎也可以支持Alsa、ESD、Artsd等音频接口了……
回复 支持 反对

使用道具 举报

23

主题

218

帖子

2470

积分

⑥精研

积分
2470
 楼主| 发表于 2007-2-11 23:23:12 | 显示全部楼层
感谢大人解释~~~~
ONScripter for PSP/Windows中文版 http://blog.163.com/john_he_
回复 支持 反对

使用道具 举报

1

主题

6

帖子

68

积分

②入门

积分
68
发表于 2007-2-12 09:28:03 | 显示全部楼层
你如果会编程的话,只要自动生成一个GBK/BIG5到utf16的编码表文件,复制粘贴到那里就可以了,完全不需要用到别的东西。
回复 支持 反对

使用道具 举报

23

主题

218

帖子

2470

积分

⑥精研

积分
2470
 楼主| 发表于 2007-2-12 14:28:28 | 显示全部楼层
恩……虽然的确可以达到目的,但个人不是很喜欢这种方法。

本来就奇怪原作者为什么不用libiconv之类的库而选择把码表硬编码进来,不但代码量大了,将来移植到别的语言平台上本地化也不是那么好玩。

感觉上ONS完全可以摆脱NS的束缚使用Unicode而不是ANSI,把ANSI的脚本转换成Unicode是轻而易举的事情。现在用ANSI了,还是硬编码的码表,做本地化工作时就头痛了。
ONScripter for PSP/Windows中文版 http://blog.163.com/john_he_
回复 支持 反对

使用道具 举报

18

主题

428

帖子

5260

积分

⑦老手

在美工荒中挣扎的全能

积分
5260
QQ
发表于 2007-2-12 14:44:30 | 显示全部楼层
为了兼容NS的nscript.dat……能用Unicode么……XD
回复 支持 反对

使用道具 举报

23

主题

218

帖子

2470

积分

⑥精研

积分
2470
 楼主| 发表于 2007-2-12 14:52:32 | 显示全部楼层
这个就是NS的“束缚”……

不过ONS好象没提供自己的脚本编译器,要靠NS的 = =b

希望ONS的作者提供一个Unicode版本的编译器和主程序,至于nscript.dat……重新编译吧
ONScripter for PSP/Windows中文版 http://blog.163.com/john_he_
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-5-19 03:26 , Processed in 0.026241 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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