你的位置:首页 > ASP.net教程

[ASP.net教程]DXperience重编译汉化的方法


 

1、 必须有DXperience相应版本的全部源代码SourceCode。把全部源代码复制到\Program Files\Developer Express .NET vX.X\Sources目录。目标目录的默认位置是在C:\Program Files\Developer Express .NET vX.X\Sources\(其中X.X为应替换相应的版本号,以下不再重复说明)。
2、 必须创建一个强名称的文件。要创建此文件,必须执行下面的命令建立你自己的密钥:sn -k StrongKey.snk并且复制新生成的强命名密钥StrongKey.snk文件到Sources目录下的\ Devexpress.Key \目录。该强名称Sn.exe工具位于\Program Files\MicrosoftVisual Studio 8\SDK\v2.0\Bin目录。
提取导出公钥命令为:sn -p StrongKey.snk key.txt ;显示公钥命令为:sn -tp key.txt 或 sn -Tp StrongKey.snk 。 
3、 解压编译脚本。将下载的相应版本的编译脚本压缩包解压,然后将所有文件(不包括子目录
PatchInternalVisibleTo)复制到DXperience安装目录的Sources子目录下。
4、 如果重编译后要恢复原来官方的assembly请运行clear.bat ,然后在修复模式重新安装DXperience。
5、 在记事本中打开defines.bat。如果在Visual Studio 2005中,将vsver = vs2008改为:vsver = vs2005 。
6、 运行clear.bat删除全局缓存中试用版的程序集DLL 。如果assembly已被锁定,请关闭所有正在运行的应用程序并重新启动IIS Admin服务,重新运行clear.bat 。
7、 运行buildall.cmd重新生成正式版的程序集DLL。编译时可能会显示一些黄色的警告(warning),不用担心,不会出现错误(error)的。
8、 重新生成工具箱选项卡。点击 开始菜单 -> 所有程序 -> Developer Express .NET vX.X -> Tools -> ToolboxCreator后先删除试用版的VS2005/VS2008工具箱选项卡,并重新生成正式版的VS2005/VS2008工具箱选项卡。
9、 从PublicKeyToken.txt(PublicKeyToken.txt文本文件是前面步骤编译时自动生成的,记录了公钥标记,在源码目录Sources下用新的公钥重新编译DevExpress .*的assembly 。参见下图:
10、 通过DXperience提供的项目转换器ProjectConverter升级原有的应用程序有三种方法:
1)、如果你一直使用正式版,则使用其提供的工具ProjectConverter,指定应用程序的目录然后升级即可。具体方法为:执行 开始 -> 所有程序 -> Developer Express .NET vX.X -> Tools -> ProjectConverter在弹出的对话框中选择VS项目文件所在的路径并去掉创建备份文件的勾然后按Upgrade就行了ProjectConverter会将项目中所有对老版本DXperience程序集的引用转换为新版本。
2)、如果你使用的是重新编译版,请找到编译版的公匙,用以下命令升级:
RUN 命令:
"C:\Program Files\Developer Express .NET vX.X\Tools\DXperience\ProjectConverter.exe" /s /k:公匙 "your_project_directory"
"C:\Program Files\Developer Express .NET vX.X\Tools\DXperience\ProjectConverter.exe" /s /k:
49d90c14d24271b5 "<your_project_directory>"
3)、最原始的方法是在工程中移除所有DEV控件的引用,然后重新添加即可。
11、 在DXperience的源代码中,你会发现Dev已经把各种资源放在了一个叫做LocalizationRes.resx的资源文件里面。该资源位于C:\Program Files\Developer Express .NET vX.XSources路径下各相应目录下。
1.         把LocalizationRes.resx文件拷贝一份到你自己的某个目录下,重命名为你需要的culture,比如要本地化为德文的话,就更名为"LocalizationRes.de.resx",当然我们需要的是中文,于是把它更名为LocalizationRes.zh-CHS.resx。窗体或用户控件也都用一个resx文件,同样可以使用这种方式汉化。
2.         现在我们可以借助VS开发环境对这个文件进行汉化了,如下图所示:
3.         现在我们需要借助资源文件生成器Resgen.exe把这个文件转化为一个resources文件。该文件位于E:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin目录中。
resgen LocalizationRes.zh-CHS.resx LocalizationRes.zh-CHS.resources。
4. 把这个资源文件打包到卫星配件中去,仍然使用VS提供的一个小工具程序集链接器--Al.exe。下面的命令行就是把LocalizationRes.zh-CHS.resources文件打包成卫星配件了。al /out:DevExpress.XtraEditors.Resources.Dll /v:0.0.0.0 /culture: zh-CHS /embed:LocalizationRes.zh-CHS.resources,DevExpress.XtraEditors.LocalizationRes.zh-CHS.resources /keyfile:strongkey.snk。上面各种参数就不赘述了。需要注意的是keyfile对应的strongkey必须跟DevExpress相应组件指定的strongkey一致。通过al命令也可以把多个resources文件打包成一个单一的配件。如下面这条命令把多种资源打包成配件。
%al% /out:..\zh-CHS\DevExpress.XtraPrinting.%VER_DLL%.Resources.dll /v:%VER_PSYS% /culture:zh-CHS /embed:ComponentEditorForm.zh-CHS.resources,DevExpress.XtraPrinting.ComponentEditorForm.zh-CHS.resources
/embed:LocalizationRes.zh-CHS.resources,LocalizationRes.zh-CHS.resources /embed:HeaderFooterForm.zh-CHS.resources,DevExpress.XtraPrinting.Native.WinControls.HeaderFooterForm.zh-CHS.resources /embed:WatermarkEditorForm.zh-CHS.resources,DevExpress.XtraPrinting.Native.WinControls.WatermarkEditorForm.zh-CHS.resources/keyfile:%KEYFILE%
通过这里大家可以看出,已经把几个窗体的资源也打进来了,不过需要注意的是/embed里的第二个参数要加上窗体或控件所在的命名空间。
现在卫星配件已经制作出来了,现在需要把它配置到一个地方以便Framework能够找到它。通常有两种方法,一种是直接把它放到GAC(Global Assembly Cache作用是可以存放一些有很多程序都要用到的公共Assembly)中,方便省事;另一种是把它们放到具体的程序目录下。
要放到GAC里面,简单的方法就是直接把卫星配件拖放到"Windows\assembly"目录下,也可以使用Microsoft提供的工具gacutil,使用如下命令:
gacutil /i:LocalizerRes.zh-CHS.resources.dll
如果不放到GAC中,那就放在你的程序的所在目录下(参见利用官方汉化资源的方法)。
利用官方汉化资源的方法:
1、        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("zh-CHS");      //增加此行代码
            Application.Run(new Form1());
        }
2、将汉化官方汉化资源包中的zh-CN和zh-CNS两个目录复制到你的程序目录下(参见下图):
评估版下载地址http://www.devexpress.com/Downloads/NET/
编译脚本http://www.devexpress.com/Support/Center/KB/p/A609.aspx
官方卫星化资源http://www.devexpress.com/Support/Center/KB/p/A609.aspx
官方汉化资源http://www.devexpress.com/Support/Center/KB/p/A421.aspx
默认路径为 D:\Program Files\Developer Express .NET v8.3\Tools\DXperience>
出处:http://blog.csdn.net/sqyfzx/archive/2009/04/17/4086232.aspx

static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("zh-CHS");      //增加此行代码
            Application.Run(new Form1());
        }
其实上面这一段可以不用加的,.NET会自动按操作系统的区域选项来识别,除非要手动切换到其它语言或要做多语言版本才有必要;