WinForm 國際化開發一例

2021-09-08 16:49:56 字數 1880 閱讀 9753

1、新建乙個winform程式(在中文版的windows下),如下,新增1個button和1個label

設定form1的localizable屬性為true(form1的properties裡的design->localizable=true);

2、add乙個folder,命名為resources,表示將來所有的資源檔案都放在其下。再resources中add乙個new item,選擇general下的resources file,命名為resource1.resx。新增字串如下

這裡在字串前用[cn]表示中文;

3、新增其他語言版本的資源檔案,依次命名為resource1.en-us.resx,resource1.ja-jp.resx。只要滿足這種命名方式,winform會自動根據不同國家版本的作業系統選擇對應的資源檔案進行載入。想想這種自動的方式,減少了多少手工根據locale編寫的if**

字串前的[jp]表示日文,[en]表示英文;

4、開啟form1.designer.cs檔案,展開其中的windowsform designer generated code,如下

如果form1的localizable屬性為false,將會生成下圖這樣的**

可見非國際化的form,生成的**中就含有hardcode。下面我們在做了國際化的**中新增來自於資源的字串。

5、將資源檔案中的字串新增到對應的button1, label1,form1

this

.button1.text= resources.

resource1

.btntext;

this

.label1.text= resources.

resource1

.labeltext;

this

.text =resources.

resource1

.formtext;

resources是我們上面新增的folder,resource1是當前系統下開發版的資源檔案。只要這樣就可以,當我們把程式拿到其它語言版作業系統下執行時,會自動載入對應的資源檔案。比如將這個程式拿到日文作業系統下執行,不需要修改**,自動載入resources.resource1.ja-jp.btntext到button1顯示;

6、在中文、日文、英文win8系統下執行同乙個程式時的效果

至此,國際化開發完畢。

attention

不知道winform程式根據什麼來選擇對應語言的資源檔案,在同乙個os下改了system locale都不能切換資源,非得執行在特定語言的os下才行。

參考資料

[1] article about winform i18n .

[2] ms resourcemanager i18nexample .

[3] cultureinfo class.

winForm 國際化的簡單實現

國際化就是要實現多語種的介面切換。首先,我們不可能用if else等語句來根據選擇的不同語種對所有的控制項乙個乙個的設值,這樣太麻煩了。net提供了國際化相關的支援,主要放在system.globalization命名空間下。下面是乙個簡單的實現,麻雀雖小,五臟俱全。這個程式是最近寫的乙個程式,就在...

Android UI開發 國際化

所謂國際化,就是指軟體在開發時就應該具備支援多種語言和國家或地區的功能,也就是說開發的軟體能同時應對不同國家和地區的使用者訪問,並針對不同國家和地區的使用者,提供相應的,符合來訪者閱讀習慣的頁面或資料。1.掌握相對布局 線性布局的使用 2.掌握樣式的使用 3.掌握如何對程式進行國際化 android...

WinForm 國際化的一些問題

我之前 winform 國際化都是湊一些 搞起 請看文後 reference 最近發現還有個官方國際化方法 首先設定 form 的 localizable 屬性為 true 選擇 form 的 language 為 default 然後給頁面中每個控制項設定一遍 text 選擇 form 的 lan...