這是一個入門級的問題,應網友請求,總結一下XAF漢化過程的幾個關鍵點。
一、所有Dev的控件的漢化,Dev官方有漢化文件。點擊下載15.2版本。
正版用戶登陸至官網是有專門的下載界面的,並且可以參與漢化。否則,就要去各種論壇或網上搜索了。
下載完成后,如上圖所示,解決並放置到Win/Web的ZH-Hans目錄中去。選中*.resources.dll,並按下F4鍵,調出設置屬性窗口:
將復制到輸出目錄選中為:如果較新則復制。
說明:這里使用的是衛星資源文件,是國際化的常見方式。Dev提供了多數漢化內容,比如在XAF 中的Grid翻頁時使用的英文。
原時:在程序運行時,能找到dll/exe所在路徑的ZH-Hans目錄中有資源文件就會去加載,只要滿足了這個條件就可以了。
二、XAF部分的漢化
上一步的工作只是處理了控件部分,XAF是由標准控件+XAF自己的代碼組成的。
XAF支持多語言國際化,漢化當然是其中一種了。
如上圖所示打開Model.xafml,在Language菜單中顯示的當前有哪些語言PerferredLanguae是當前使用的語言。
選中Language Manger..可以管理軟件將擁有哪些語言,點Add->ZH-Hans->OK,再次查看下拉框Language可以看到語言中多了ZH-Hans。
注意,這並不是說你的軟件支持了這個語言,只能說你第一步中增加的那些dll有被選擇的來源了。
在PerferredLanguae中選擇ZH-Hans即可真正的應用了下載回來的dll.
此時,官方提供的“控件”等多數內容已經漢化,但仍有一部分沒有。
比如說:XAF的那新新建、編輯、刪除等按鈕,這些內容就可以在上圖中的XAFML 編輯器中漢化了。
重要的:如果在Language中選擇了一種語言,則說明接下來的設置(僅屬於與國際化有關的字符部分)將在指定的語言中生效。
如果選中了“(Default Language)”並在上面做修改,則說明所有語言都會被改變。
如果先在“(Default Language)”上面修改,再去修改指定的語言,則指定的語言的修改會升效。
接下來修改信息吧:
上圖所示的是漢化按鈕的信息,右側的屬性欄中,可以看到,帶有地球標記的屬性,都是國際化相關的。
左邊這顆樹,如果你還不熟悉,一定要多展開來經常看,這是XAF程序的最大控制中心,除了這里還有一個,一會兒會說。基本上所有的漢化內容都會在這里找到的。第一步中已經說了,官方提供了多數漢化,但有些控件中仍有一部分漢化,接下來請看第三步:
三、漢化遺漏的控件內容
不管是win、web項目,都可以打開winapplication.cs/webapplicatin.cs出現上圖,按A,B,C,D的順序,依次點擊,操作完成后,Localization將會多出一些結點。你可以查看界面上沒有被漢化的內容在xafml中查找。99%能找到你要找的結點。
另外1%是什么情況:
1:比如你修改了模板,由於類型的名稱變了,資源文件不生效了。我之前的做法是將類名稱改為和官方一樣的。(什么是模板?不知道沒有關系,不用知道,當你有一天知道了,並且你的記性足夠好,你的耳邊就想回響去這段話)
2:官方的bug沒有制作漢化相關內容,這個情況多數功能都不存在了。
3.對,上面這部分就是XAF的另一個控件中心,界面操作的部分,只有xafml editor和這里。別的都是代碼啦!
四、自動翻譯批量漢化
在XAFML中,選中了一種語言后,有一個地球圖標會可用,如圖所示,我使用的語言是“zh-CHS”,點擊后,選中行后,再點擊Translate按鈕,可以調用bing自動翻譯。
如果按照教程使用之前的zh-hans,到這一步時,是不能自動翻譯的,原因是bing不能識別zh-hans,所以我使用了zh-CHS,至於zh-cn/zh-hans/zh-chs這些都是中文語言的不同名稱到底有什么區別,自己補習吧。
如果一次選中了多行,將會批量的翻譯。之前官方提供了google翻譯引擎的代碼,可以去官方搜索。
關於漢化的話漢的話題還有很多,不過對於多數軟件開發,這些也夠用了。有其他問題請在下面留言,方便追蹤。