前言 曾經記得在 win
的原生代碼編程時代
為實現一個多語言界面而絞盡腦汁
因此出現了大量的教程都是教你如何讓程序實現多語言支持
這些實現方法的技術水平參差不齊
很難找到好的框架實現在商業程序中
NET 時代的到來
我們突然發現這一切變得那麼簡單
你只需輕松點擊鼠標就可以讓你的程序完美實現多語言支持
我不想在這裡過多的解釋文中出現的概念
因為 MSDN 已經為我們提供了完全本地化的技術文檔
正文 我用的是 Visual Studio
中的 Visual C#
NET 來實現的
我設計的這個 Demo 不僅可以自動根據當前區域設置進行本地化的實現
還可以手動更改界面語言
並且實現自定義資源的本地化
Demo 源碼這裡下載
請跟隨我的步驟來完成
創建名為
MultiLanguage
的新 Windows 應用程序
在
屬性
窗口中
將窗體的 Localizable 屬性設置為 true
Language 屬性已經設置為 (Default)
將 MainMenu
PictureBox
Button 控件從
工具箱
的
Windows 窗體
選項卡拖到窗體上
然後按照我在 Demo 窗體中對這些控件的布局
設計進行設置
將該窗體的 Language 屬性設置為
中文(中華人民共和國)
重新按照我在 Demo 窗體中對這些控件的中文界面的布局
設計進行設置
單擊解決方案資源管理器中的
顯示所有文件
按鈕
資源文件出現在 Form
cs 的下面
Form
resx 是後備區域性的資源文件
它將生成到主程序集中
Form
zh
CN
resx 是在中國講的簡體中文的資源文件
分別生成菜單項的 Click 事件
按照我在 Demo 中的實現代碼添加到事件處理部分
大家主要學習我是如何動態修改界面上所有跟語言相關的元素
包括字符串
對象(例如PictureBox
Image)
在
項目
菜單上單擊
添加新項
在
模板
框中選擇
程序集資源文件
模板
在
名稱
框中鍵入文件名
WinFormStrings
resx
WinFormStrings
resx 文件將包含英語的後備資源
每當應用程序找不到更適合於 UI 區域性的資源時
就將訪問這些資源
該文件被添加到解決方案資源管理器中的項目中
並自動在 XML 設計器中以
數據
視圖形式打開
在
數據表
窗格中選擇
data
在
數據
窗格中
單擊空行
並在
name
列中輸入
strMessage
在
value
列中輸入
Hello World
在
文件
菜單上
單擊
保存 WinFormStrings
resx
再執行兩次步驟
以創建一個名為
WinFormStrings
zh
CN
resx
的資源文件
並且這個文件具有在下表中指定的字符串資源
WinFormStrings
zh
CN
resx 文件將包含特定於在中國講的簡體中文的資源
資源文件名 name value
WinFormStrings
zh
CN
resx strMessage 你好!世界
生成 Button
的 Click 事件
按照我在 Demo 中的實現代碼添加到事件處理部分
這部分大家主要學習如何訪問手動添加的資源
其目的是為了在你以後編程時生成在對話框和錯誤信息中出現的可本地化字符串
添加構造函數 Form
() 的代碼
按照我在 Demo 中的代碼進行添加
保存和生成解決方案
編譯並試著運行
我是用 Release 模式進行編譯的
在項目目錄的 MultiLanguage\bin\Release 下會生成兩個子目錄
zh
CHS
zh
CN
裡面都有一個叫
MultiLanguage
resources
dll
的文件
分別對應你在窗體中設計的後備區域性的資源文件
發布時請隨最後的編譯程序一起發布
不要改變 Bin 目錄下的任何目錄設置
NET Framework 會根據一定規律進行本地化實現
原理請參考 MSDN 相應章節
From:http://tw.wingwit.com/Article/program/net/201311/11424.html