论坛风格切换切换到宽版
  • 21351阅读
  • 24回复

ResBorn - 及其精妙的多语言引擎和附加工具 [复制链接]

上一主题 下一主题
离线Yonsm
 

发帖
57
金钱
60
威望
6
只看楼主 倒序阅读 0 发表于: 2008-09-09
又要马儿跑,又要骂而不吃草:)

图像

程序多语言支持一般来说有以下两种方式:

1. 传统 INI 文件多语言支持:程序中动态加载INI内容,查找并替换界面中的语言相关字符串。
  优点:无边编程知识,普通用户而已自己定制语言文件。且升级语言文件非常方便(不涉及语言字符串之外的东西)。
  缺点:每次运行都耗费额外的工作量在解析语言文件和动态更新界面字符串上,有性能损失,且有些程序不通用。

2. MUI 方式的多语言支持:基于 Windows 提供的 MUI 支持,每个语言编译一个DLL。
  优点:运行高效,无任何性能损失。
  缺点:只有开发者才能做到多语言支持。每添加一种语言都要新建一个DLL/MUI。并且界面的改动,很可能导致 MUI 需要更新。费劲!

 
ResBorn 是一种高效方便的多语言引擎,它结合了上述两种方式的优点,但没有上述两种方式的缺点。它的工作模式如下:

1.导出字符串: 枚举指定PE文件(可以是当前进程的EXE文件)中的所有资源,把其中语言相关的字符串(对话框、菜单、字符表)导出为 LNG 格式的语言字符串列表(UNICODE带BOM的文本文件),用户可以使用任何文本编辑器编辑它。

2. 导入字符串:枚举指定PE文件(可以是当前进程的EXE文件,有自动退出更新机制)中的所有资源,根据1中所述的LNG文件,把特定的字符串更改结果回写到资源中,完成一个多语言版本的重构工作。

其中,步骤一可省略,开发者可以提供原始的语言文件。步骤二仅在切换语言时调用,正常运行时不需要耗费任何的性能损失(根本不用干活),和MUI方式一样。

简而言之,ResBorn 是一个 Win32 PE 资源专用解析引擎!

下面是 ResBorn Engine (源代码)的相关内容:
1. ResBorn Engine 支持Windows各种版本,包括 Windows Mobile SP/PPC;
2. 支持 UNICODE 和 ASCII 编译(废话,我的代码一直如此)。
3. 加入完整的 ResBorn Engine 到 Pocket PC 程序中会导致程序增大 11KB (够小)。PC 上不超过 20K
4. 全局 LANG 支持,例如,LNG 中加入一行“LANG=2052”,可以把所有的资源语言更改为中文。
5. 如有需要,稍后可能会 Release 源代码。


更进一步地,你可以根本不用考虑多语言引擎,因为 ResBorn 本身提供了一个使用 ResBorn Engine 的工具(名字就叫 ResBorn),可以认为是一个专用资源汉化工具(或者英化?等)。使用 ResBorn 工具,可以INI格式的语言字符列表,修改后回写到EXE/DLL文件中,即可得到一个新语言版本的程序。(理论上针对任何PE有效,不需要在程序中做什么工作,即,对任何第三方程序可用)

2008.09.09 更新为 ResBorn 1.0.54 (包含源代码,及其高效精妙):
下载:
http://www.yonsm.net/read.php?375

注意:第二个版本,已经比较完善了。使用前请自行备份要操作的EXE文件。


另,ResBorn 是标准资源的语言字符串提取和回写工具。如果你要翻译非标资源,可以使用 TransText:
http://www.yonsm.net/read.php?316。
离线youth9999

发帖
201
金钱
0
威望
0
只看该作者 1 发表于: 2008-09-09
又看到Yonsm精品更新了~~
TransText是否也更新一下,把UTF-8字符串一并处理了~~
离线虎皮椒

发帖
269
金钱
40
威望
4
只看该作者 2 发表于: 2008-09-09
已收藏
离线吕达嵘

发帖
2855
金钱
9785
威望
154
只看该作者 3 发表于: 2008-09-09
已加到主站中
伏 案 埋 首 清 月 夜, 苦 为 己 任 利 众 人。
欣 然 放 眼 新 世 纪, 最 美 还 是 我 中 文。
Welcome to 汉化新世纪............
离线cxlrb
发帖
156
金钱
0
威望
0
只看该作者 4 发表于: 2008-09-11
强大的工具,很有发展前途
离线Yonsm

发帖
57
金钱
60
威望
6
只看该作者 5 发表于: 2008-09-11
QUOTE(吕达嵘 @ 2008年 09月 09日 23时 07分) [snapback]349948[/snapback]

已加到主站中


多谢,但是我更新了,现在已经完全可以成为一个实用工具了,吕大可否更新一下:http://www.yonsm.net/attachment.php?fid=24

修正了汉化后资源变大后PE格式不正确等问题。现在产出的PE是及其标准的了(文件可能会变大,但这才是真的符合MSDN 文档中关于 WIN32 PE的定义的PE了)
离线梦中飘雪
发帖
*
金钱
*
威望
*
只看该作者 6 发表于: 2008-09-18
我是菜鸟,下载来看一下。呵呵呵。
离线lengfeng168
发帖
4
金钱
0
威望
0
只看该作者 7 发表于: 2008-09-21
一款方便的汉化辅助工具,谢老大,辛苦了~
离线ertTsso
发帖
63
金钱
0
威望
0
只看该作者 8 发表于: 2008-09-21
这个工具好方便。
感谢提供!
离线livo225588
发帖
3
金钱
0
威望
0
只看该作者 9 发表于: 2008-09-25
初来乍到,先学习先~
虚拟的网络中度过真实的人生~
欢迎光临我的个人论坛!