看了蟈蟈今天發的文章後,研究了一下winform的多語言解決方案,參考網上的一些資料後,發現乙個簡單的方法,完全可以通過vs.net的強大功能實現。
具體方法如下:
1. 選中乙個form窗體,在屬性編輯器中設定localizable屬性為true(預設為false)
2. 設定language屬性為default,這樣就可以編輯預設情況下的文化設定
3. 然後在form中新增你需要的基本控制項,如按鈕、選單、標籤等
注意,一旦form發生變化,vs.net就會自動生成
=new
system.resources.resourcemanager(
typeof
(form1));
this
.mainmenu1.righttoleft
=((system.windows.forms.righttoleft)(resources.getobject(
"mainmenu1.righttoleft
")));
////menuitem1
//this
.menuitem1.enabled =((
bool
)(resources.getobject(
"menuitem1.enabled
")));
this
.menuitem1.shortcut
=((system.windows.forms.shortcut)(resources.getobject(
"menuitem1.shortcut
")));
this
.menuitem1.showshortcut =((
bool
)(resources.getobject(
"menuitem1.showshortcut
")));
this
.menuitem1.text
=resources.getstring(
"menuitem1.text
");
this
.menuitem1.visible =((
bool
)(resources.getobject(
"menuitem1.visible
")));
從**看,其實使用的方法與 蟈蟈 所用的完全相同,都是用了resourcemanager(system.type)方法來實現resourcemanager的初始化。另外,其中通過大量 顯示型別轉換 完成控制項屬性設定。大家也可以用這些初始化**來做執行時多語言介面切換。
這種方法的確簡單易用,但對於有很多視窗的應用程式來說,並不是很方便,因為對於每個視窗,你需要多少種語言就必須配置多少個資源檔案,這些配置檔案由於是按每個視窗儲存的,統一管理不是很方便,目前還在繼續研究中。
參考資料:
1. 蟈蟈 的 .net 多語言解決方案(demo篇)
2. notexpad 的 .net framework 中多語言支援的實現
3. ceocio(ms mvp) 的 在c#桌面應用使用多語言
實現WinForm全球化的簡單方法
看了蟈蟈今天發的文章後,研究了一下winform的多語言解決方案,參考網上的一些資料後,發現乙個簡單的方法,完全可以通過vs.net的強大功能實現。具體方法如下 1.選中乙個form窗體,在屬性編輯器中設定localizable屬性為true 預設為false 2.設定language屬性為defa...
本地化與全球化的影響
本地化與全球化的影響 語言 文化 歷史 所在地的社會狀況 所在地的經濟狀況 全球化與本地化之間的衝突 信仰與追求 在本地化過程中,要根據當地的各種情況進行分析 了解當地的語言 文化 歷史 社會狀況 經濟狀況 如百姓收入,用於制定價格水平 以及當地居民的信仰與追求。而全球化,需要的是對全球各個分支機構...
全球化(1) 了解國際化
國際化,全球化,本地化這幾個概念經常被混淆。下圖說明國際化 全球化和本地化的關係。國際化 internationalization 是設計和製造容易適應不同區域要求的產品的一種方式。它要求從產品中抽離所有的與語言,國家 地區和文化相關的元素。換言之,應用程式的功能和 設計考慮在不同地區執行的需要,其...