zoukankan      html  css  js  c++  java
  • 制作TortoiseSVN最新版本的中文DLL(转)

    转自:http://blog.donews.com/feihu/archive/2005/05/13/377920.aspx

    自从发现了SVN后,我在自己的项目中总是使用SVN来做源代码管理,在windows上使用TortoiseSVN做客户端。TortiseSVN作为windows客户端有个非常好的用途,就是不需要SVN的服务器,就可以管理本机硬盘上的代码和文档。我也一直这样使用。可以参见猛禽的Blog,SVN的Local方式:个人源码管理的好办法(CSDN的blog到底出了什么问题,都不能访问了)

    一直用了TortiseSVN1.1.3没有升级,今天早上,手工检查了一下,发现升级到1.1.7.3332,就去下载了看看。尽管我不用翻译后的TSVN,但基于习惯,总是要去下载一个中文包。嗯,却没有发现有相应的中文语言包下载。再看了一下转移到http://tortoisesvn.berlios.de的TSVN的帮助站点,才发现现在帮助方式已经修改了,采用了PO文件作为翻译方式。PO文件其实是UTF-8的文本文件,非常容易编辑,这样也方便了翻译。但最后需要注入近语言DLL,才能被TSVN使用。目前TortiseSVN的版本比较新,所以还没有相应的中文DLL出来。一时有兴趣了,就自己来编译个中文DLL吧。

    首先,要看看TortiseSVN的帮助了,现在转到http://tortoisesvn.berlios.de,帮助内容丰富了许多,首页右侧的常见问题,一定要看看。

    关于TSVN的language的问题,有个页面谈到了:http://tortoisesvn.berlios.de/faq/index.php?action=artikel&cat=4&id=162&artlang=en&highlight=language。里面的这个链接就是关于TSVN的翻译的完整说明:http://svn.collab.net/repos/tortoisesvn/trunk/Languages/translations.txt

    1,首先下载翻译好的语言文件:Tortoise_zh_CN.po
    http://svn.collab.net/repos/tortoisesvn/tags/version_1.1.7/Languages/下载最新的Tortoise_zh_CN.po,因为简体翻译还在进行中,所以在http://tortoisesvn.berlios.de/l10n有更新的,可以看到翻译了96.5%。在文件中可以了解两位中文简体翻译者
    NetCobra <netcobra@gmail.com>
    Cecil Sheng <
    zcecil@csie.org>
    在此表示感谢。

    2,然后下载注入软件:ResText
    http://tortoisesvn.tigris.org/files/documents/406/14560/ResText.zip下载。它是一个将PO里的数据注入到你自己的资源DLL的软件。

    3,最后是下载两个空的语言资源DLL:TortoiseProcLang.dll(主程序使用),TortoiseMergeLang.dll(合并比较程序使用)
    http://tortoisesvn.tigris.org/servlets/ProjectDocumentList?folderID=1847下载,一定要下载版本对应的空DLL。当当当当,在这个页面没有1.1.7。我试了一下1.1.5的DLL,确实是不行的。后来就想,自己来编译一下TSVN,这就是OpenSource的好处啊。

    编译语言资源DLL:
    利用老版本的TSVN,CheckOut出:
    http://svn.collab.net/repos/tortoisesvn/tags/version_1.1.7/src/。看看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放到一个目录下。从http://www.microsoft.com/globaldev/reference/lcid-all.mspx查询到简体中文的localID是2052。然后再控制台里输入:
    restext apply TortoiseMergeLang.dll TortoiseMerge2052.dll Tortoise_zh_CN.po
    restext 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给我。

  • 相关阅读:
    layui table中使用checkbox
    layui 工具条实现分页
    layui 文件上传加进度条
    js验证文本框数字
    Oracle 锁表
    IIS部署新网站
    未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序解决办法
    VS问题
    利用ADO让普通人用excel读取oracle数据库表的通用办法
    Spring概念
  • 原文地址:https://www.cnblogs.com/meetrice/p/2495380.html
Copyright © 2011-2022 走看看