转自:
自从发现了SVN后,我在自己的项目中总是使用SVN来做源代码管理,在windows上使用TortoiseSVN做客户端。TortiseSVN作为windows客户端有个非常好的用途,就是不需要SVN的服务器,就可以管理本机硬盘上的代码和文档。我也一直这样使用。可以参见猛禽的Blog,(CSDN的blog到底出了什么问题,都不能访问了)
一直用了TortiseSVN1.1.3没有升级,今天早上,手工检查了一下,发现升级到1.1.7.3332,就去下载了看看。尽管我不用翻译后的TSVN,但基于习惯,总是要去下载一个中文包。嗯,却没有发现有相应的中文语言包下载。再看了一下转移到的TSVN的帮助站点,才发现现在帮助方式已经修改了,采用了PO文件作为翻译方式。PO文件其实是UTF-8的文本文件,非常容易编辑,这样也方便了翻译。但最后需要注入近语言DLL,才能被TSVN使用。目前TortiseSVN的版本比较新,所以还没有相应的中文DLL出来。一时有兴趣了,就自己来编译个中文DLL吧。
首先,要看看TortiseSVN的帮助了,现在转到,帮助内容丰富了许多,首页右侧的常见问题,一定要看看。
关于TSVN的language的问题,有个页面谈到了:。里面的这个链接就是关于TSVN的翻译的完整说明:。
2,然后下载注入软件:ResText
在下载。它是一个将PO里的数据注入到你自己的资源DLL的软件。3,最后是下载两个空的语言资源DLL:TortoiseProcLang.dll(主程序使用),TortoiseMergeLang.dll(合并比较程序使用)
在下载,一定要下载版本对应的空DLL。当当当当,在这个页面没有1.1.7。我试了一下1.1.5的DLL,确实是不行的。后来就想,自己来编译一下TSVN,这就是OpenSource的好处啊。编译语言资源DLL:利用老版本的TSVN,CheckOut出:。看看build.txt,编译整个的TSVN,需要的资源(很多配套软件,磁盘空间1.5G等等)。但我们只是编译两个资源文件,是不需要这些的。用VS2003打开整个解决方案,可以看到有两个专门的语言项目:TortoiseMergeLang;TortoiseProcLang。先将项目根目录下的version.in另存为version.h,将头文件里面的$WCREV$全部替换成3332。然后在VS里面编译且只编译:TortoiseProcLang,TortoiseMergeLang项目。这样在..\..\languages目录下就有了TortoiseMergeLang.dll,TortoiseProcLang.dll。
4,PO注入到DLL:
将四个文件:TortoiseMergeLang.dll,TortoiseProcLang.dll,ResText.exe,Tortoise_zh_CN.po放到一个目录下。从查询到简体中文的localID是2052。然后再控制台里输入:restext apply TortoiseMergeLang.dll TortoiseMerge2052.dll Tortoise_zh_CN.porestext apply TortoiseProcLang.dll TortoiseProc2052.dll Tortoise_zh_CN.po将生成的两个xxx2052.dll copy到TSVN的目录下的languages目录(必定是C:\Program Files\TortoiseSVN\Languages\,TSVN安装的时候没有让选择目录。)
然后在右键关联菜单TortoiseSVN条目中选择“Settings”,就可以设置中文语言包了。
使用了1.1.7版本的TSVN后,发现了我一直想要的功能,就是自动关于提示窗口,比如checkout,commit后,没什么问题的话,提示窗口会自动关闭了,如果你使用多TSVN后,就能感觉,这个功能是多么的实用。
看截图,可以看到还有一些地方没有翻译,我按照Tortois.pot里面的条目,在中文PO中添加了两处翻译。
#: Control-ID:1066,
msgid "&Close windows automatically"msgstr "自动关闭提示窗口(&C)"#: Control-ID:1123,
msgid "D&on’t close on conflicts"msgstr "提示冲突时不要关闭(&o)"重新注入,程序提示中:没有翻译的地方少了4个(不知道为什么)。将新的TortoiseProc2052.dll覆盖过去,然后再看看,呵呵,这两处地方已经是中文的了。
如果谁需要TortoiseSVN 1.1.7.332版本的中文DLL,可以发Email给我。