.NET汉化用工具:UniTranslator

之前,为了汉化某WPF软件,我开发了一个针对WPF中的BAML的工具BAML Translator。后来,当初的汉化目标的新版本越来越复杂,也渐渐遇到了其他.NET小玩意儿的汉化,于是我对它进行了各种修补。终于我发现当文本条目比较多的时候,没有进行行虚拟化的WinForm的列表控件用起来很卡(其实可以实现,只是有些麻烦),而且在高分屏下的显示也一片糊(其实也可以解决,不过同时适配高分屏和普通屏会更加麻烦),遂决定用WPF重写。于是就有了现在的UniTranslator。——这也是Uni家族的第二个工具了(<ゝω・)☆ 

最早的BAML Translator只能针对WPF中的BAML,但如今UniTranslator已能汉化.NET中三种类型的字符串:BAML,硬编码(Hard Code)和资源(Resource)。这基本上已经涵盖了.NET桌面程序(WinForm、WPF、Console等等)中字符串的大部分情况(当然图片资源就不在讨论范围了)。其实除了BAML之外,能实现另外两种汉化的方式已经很多。不过在UniTranslator中你将能得到简易且一致的体验:

选择模式——读取.NET文件——自动提取所有字符串——在右侧填写汉化文本(随时保存/读取汉化文本)——点击Process处理程序集——另存.NET文件。这样就完成了汉化。

更多使用说明可以参考BAML Translator那边的说明,大体上操作都是类似的。

但是用WPF撸的界面真的比之前的WinForm赏心悦目太多了,而且即使文本很多也不会卡,舒服(>ω<*) 

下载还是在原来的地址

 

除了界面好看之外,我通过WPF中的Command大法实现了各种快捷键,其中最有用的小技巧就是在没填写翻译的栏上按Ctrl+D就可以把原文复制到翻译栏上啦。不过有一点小瑕疵:效果不会立即刷新,只有当你进入这一栏的编辑模式或者上下滚动才会刷新,不过这应该影响不大。另外Ctrl+S也是需要经常按的,万一崩了呢……(*/ω\*)

——

偶尔会翻到我blog的朋友中,可能有人会关心这玩意儿能不能用到Unity上。这个通常是不行的,因为Unity中的文本通常不会存在dll里,而是会在资源里。所以还是需要多研究别的方案。不过如果真的有存到dll中的文本的话,本工具的HardCode模式还是能起到一点作用的。

添加评论

Loading