前言
只用一套源**就可以方便地支援多種文字和多個地域,那麼這個軟體就可以方便地被翻譯成本地版本,這個過程叫做地域化(localization)。怎樣才能不修改任何源**就使之能動態地轉換到不同的地域資源上呢?那就是使用windows的程式特性之一--資源。把在軟體中用到的可見資源維繫在乙個資源dll(dynamic link library動態鏈結庫)中,就能使地域化很容易地被實現,因為它把具體的文字元件單獨提取放在乙個檔案中,所以,乙個可執行檔案就可以裝載幾種不同的語言文字,並且選擇用子程式來裝載適合的文字dll。建立乙個cstring物件的例項,並用該字串的資源識別符號(string id)呼叫loadstring,即可避免繁瑣的字串編碼工作。
在大多數情況下,資源包含在應用程式的單元中,如果呼叫afxsetresource handle,就可以指向另乙個不同的單元,我下面給出的statedemo程式就是這樣處理的。呼叫afxsetresource handle,從dll資源中採集軟體所需資源,通過替換掉不同語種的dll資源,程式便可以使用一套完全不同的資源(如string字串、dialogue對話方塊、bmp點陣圖、menu選單等)。
初始情況下,作為主執行體的statedemo不含任何資源。首先,建立乙個包含所有英文資源的dll,在使用這個資源dll時,應用程式就會以英文形式出現,即軟體為英文版;然後,建立中文dll,再次執行statedemo程式,程式就以中文形式出現(即使應用程式未被重新編譯)。
i. 應用程式的建立與編譯
ii. 建立英文資源resource.dll
注此外,還有一種方法就是採用autorun技術。如果應用軟體是以光碟為載體,則可以在檔案autorun上下功夫。autorun是乙個放在光碟目錄下的檔案,當光碟放入光碟機的時候,windows 95會自動執行它。根據不同語言版本軟體所需的不同資源dll檔案,用install sheld 5製作兩套安裝程式,分別放在各自的目錄下,而且安裝時的splash版權封面setup.bmp也可以根據地域的不同而不同,例如把中文大陸國標碼安裝程式放在/gbsetup目錄下,中文big5碼安裝程式放在/big5setup目錄下。你可以像上面一樣,在autorun.exe中加入如下**。
if(getoemcp()==936)
if(getoemcp()==950)
現在就可以自動識別windows作業系統語言版本而安裝各自相應語言版本的軟體了。在某種情況下,使用者需要更大的自由度,你可以在安裝前彈出視窗,詢問要安裝哪種語言版本。在autorun.exe可執行檔案中,根據使用者的選擇來呼叫各自目錄下的安裝檔案進行安裝。
至此,你就可以用本文所講述的內容編制自己的雙語或多語種軟體了。在軟體測試完畢並且完成了幫助檔案等必需的工作後,再製作乙個具有個性的安裝檔案,這樣,你的雙語或多語種軟體就誕生了。
用VC 實現軟體的多語種支援
前言 只用一套源 就可以方便地支援多種文字和多個地域,那麼這個軟體就可以方便地被翻譯成本地版本,這個過程叫做地域化 localization 怎樣才能不修改任何源 就使之能動態地轉換到不同的地域資源上呢?那就是使用windows的程式特性之一 資源。把在軟體中用到的可見資源維繫在乙個資源dll dy...
VC中多語選單的實現
vc中多語選單的實現 隨著internet的發展,軟體的國際化不可避免。一種軟體可能被很多國家的人使 用,如給您的軟體加上多種語言的選單,不但給使用者帶來很多方便,也為您的軟體的 推廣帶來很多便利。比如給您開發的中文軟體,加上乙個英語或日語選單,對母語為英 語和日語的朋友將會帶來很多便利。vc中實現...
VC開發多語言介面支援的簡單方法
vc開發多語言介面支援的簡單方法 最近在做乙個小程式,要求實現對多語言介面顯示支援功能,並且,介面顯示內容使用者能夠自己設定。初步設計用ini檔案來配置顯示內容,換一種語言的配置檔案,就能夠更換整個系統的顯示語言。考慮到系統規模很小,週期又短,不想用太複雜的方案來解決這個問題,當參考了很多網上類似的...