国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

.NET Framework 中多語言支持的實(shí)現(xiàn)

2024-07-10 12:59:36
字體:
供稿:網(wǎng)友
前言
曾經(jīng)記得在 win32 的原生代碼編程時(shí)代,為實(shí)現(xiàn)一個(gè)多語言界面而絞盡腦汁,因此出現(xiàn)了大量的教程都是教你如何讓程序?qū)崿F(xiàn)多語言支持,這些實(shí)現(xiàn)方法的技術(shù)水平參差不齊,很難找到好的框架實(shí)現(xiàn)在商業(yè)程序中。.net 時(shí)代的到來,我們突然發(fā)現(xiàn)這一切變得那么簡單,你只需輕松點(diǎn)擊鼠標(biāo)就可以讓你的程序完美實(shí)現(xiàn)多語言支持。
我不想在這里過多的解釋文中出現(xiàn)的概念,因?yàn)?msdn 已經(jīng)為我們提供了完全本地化的技術(shù)文檔。

正文
我用的是 visual studio 2003 中的 visual c#.net 來實(shí)現(xiàn)的,我設(shè)計(jì)的這個(gè) demo 不僅可以自動(dòng)根據(jù)當(dāng)前區(qū)域設(shè)置進(jìn)行本地化的實(shí)現(xiàn),還可以手動(dòng)更改界面語言,并且實(shí)現(xiàn)自定義資源的本地化。 demo 源碼這里下載。
請跟隨我的步驟來完成:
創(chuàng)建名為“multilanguage”的新 windows 應(yīng)用程序。
在“屬性”窗口中,將窗體的 localizable 屬性設(shè)置為 true。
language 屬性已經(jīng)設(shè)置為 (default)。
將 mainmenu、picturebox、button 控件從“工具箱”的“windows 窗體”選項(xiàng)卡拖到窗體上,然后按照我在 demo 窗體中對這些控件的布局、設(shè)計(jì)進(jìn)行設(shè)置。
將該窗體的 language 屬性設(shè)置為“中文(中華人民共和國)”。
重新按照我在 demo 窗體中對這些控件的中文界面的布局、設(shè)計(jì)進(jìn)行設(shè)置。
單擊解決方案資源管理器中的“顯示所有文件”按鈕。
資源文件出現(xiàn)在 form1.cs 的下面。form1.resx 是后備區(qū)域性的資源文件,它將生成到主程序集中。form1.zh-cn.resx 是在中國講的簡體中文的資源文件。
分別生成菜單項(xiàng)的 click 事件,按照我在 demo 中的實(shí)現(xiàn)代碼添加到事件處理部分。
大家主要學(xué)習(xí)我是如何動(dòng)態(tài)修改界面上所有跟語言相關(guān)的元素,包括字符串、對象(例如picturebox.image)。
在“項(xiàng)目”菜單上單擊“添加新項(xiàng)”。
在“模板”框中選擇“程序集資源文件”模板。在“名稱”框中鍵入文件名“winformstrings.resx”。winformstrings.resx 文件將包含英語的后備資源。每當(dāng)應(yīng)用程序找不到更適合于 ui 區(qū)域性的資源時(shí),就將訪問這些資源。
該文件被添加到解決方案資源管理器中的項(xiàng)目中,并自動(dòng)在 xml 設(shè)計(jì)器中以“數(shù)據(jù)”視圖形式打開。
在“數(shù)據(jù)表”窗格中選擇“data”。
在“數(shù)據(jù)”窗格中,單擊空行,并在“name”列中輸入“strmessage”,在“value”列中輸入“hello world”。
在“文件”菜單上,單擊“保存 winformstrings.resx”。
再執(zhí)行兩次步驟 8-12 以創(chuàng)建一個(gè)名為“winformstrings.zh-cn.resx”的資源文件,并且這個(gè)文件具有在下表中指定的字符串資源。winformstrings.zh-cn.resx 文件將包含特定于在中國講的簡體中文的資源。
資源文件名 name value
winformstrings.zh-cn.resx strmessage 你好!世界

生成 button1 的 click 事件,按照我在 demo 中的實(shí)現(xiàn)代碼添加到事件處理部分。
這部分大家主要學(xué)習(xí)如何訪問手動(dòng)添加的資源,其目的是為了在你以后編程時(shí)生成在對話框和錯(cuò)誤信息中出現(xiàn)的可本地化字符串。
添加構(gòu)造函數(shù) form1() 的代碼,按照我在 demo 中的代碼進(jìn)行添加。
保存和生成解決方案。
編譯并試著運(yùn)行。
我是用 release 模式進(jìn)行編譯的,在項(xiàng)目目錄的 multilanguage/bin/release 下會(huì)生成兩個(gè)子目錄“zh-chs”、“zh-cn”,里面都有一個(gè)叫“multilanguage.resources.dll”的文件,分別對應(yīng)你在窗體中設(shè)計(jì)的后備區(qū)域性的資源文件。發(fā)布時(shí)請隨最后的編譯程序一起發(fā)布,不要改變 bin 目錄下的任何目錄設(shè)置,.net framework 會(huì)根據(jù)一定規(guī)律進(jìn)行本地化實(shí)現(xiàn),原理請參考 msdn 相應(yīng)章節(jié)。

參考
msdn feb 2003 簡體中文版。具體參見
ms-help://ms.msdnqtr.2003feb.2052/vbcon/html/vbwlkwalkthroughlocalizingwindowsforms.htm

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 杭州市| 金平| 万全县| 文化| 彰化市| 儋州市| 广宁县| 慈溪市| 余庆县| 驻马店市| 澄江县| 闽侯县| 丰宁| 崇文区| 遂川县| 鹿邑县| 富宁县| 闽侯县| 广南县| 巴里| 宾阳县| 托克逊县| 衡东县| 南宫市| 伊宁县| 资阳市| 昆明市| 徐州市| 汝阳县| 惠水县| 洪泽县| 扶余县| 洛扎县| 白玉县| 江西省| 屏东县| 东至县| 乐陵市| 青阳县| 长宁区| 桃园县|