程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> DXperience重編譯漢化的方法,dxperience編譯漢化

DXperience重編譯漢化的方法,dxperience編譯漢化

編輯:C#入門知識

DXperience重編譯漢化的方法,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會自動按操作系統的區域選項來識別,除非要手動切換到其它語言或要做多語言版本才有必要;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved