如何開發(fā)一個(gè)多種語言版本的C#程序

字號(hào):

在C#中有多種使用資源文件的方法,能夠很方便地開發(fā)全球通用的應(yīng)用程序。本文通過一個(gè)簡(jiǎn)單的小例子,來講解在C#中如何利用資源文件,快速開發(fā)一個(gè)多種語言版本的程序。本例中只有一個(gè)窗體,三個(gè)控件,能夠根據(jù)用戶的設(shè)置以中文或英文界面運(yùn)行。開發(fā)環(huán)境是Windows 2000 Professional、Microsoft Visual Studio.net 2002。具體開發(fā)步驟如下:
    一、新建項(xiàng)目
    啟動(dòng)Microsoft Visual Studio .NET,新建一個(gè)C#項(xiàng)目MyApp,本例工程存放于F:\Csharp\MyApp。
    二、添加控件
    在Form1 窗體上添加三個(gè)控件(見圖1):主菜單MainMenu、標(biāo)簽Label1和按鈕Button1。Label1和Button1控件的屬性均采用缺省設(shè)置。MainMenu控件中添加三個(gè)菜單項(xiàng)menuItem1、menuItem2、menuItem3。Text屬性分別設(shè)為“語言”、“中文”和“English”。menuItem2、
    menuItem3 的RadioCheck屬性設(shè)為True。
    三、創(chuàng)建配置文件 
    在項(xiàng)目中添加一個(gè)文本文件MyAppConfig.ini,保存當(dāng)前程序的語言版本設(shè)置。該文件中只有一行內(nèi)容。如果是“English”,則表示程序?yàn)橛⑽陌?;如果是“Chinese”則為中文版。這里暫且保存為“English”。
    四、創(chuàng)建資源文件
    .NET中的資源文件有三種: 文本(.txt )文件、XML 格式的.Resx 文件和.Resources 文件。文本文件只能包含形如“ 名稱= 值”格式的字符串資源。.Resx文件和.Resources 文件中不僅能保存字符串資源,還能保存圖像等可序列化的持久對(duì)象資源。但是只有.resources 文件格式的資源文件才能被嵌入到運(yùn)行庫(kù)可執(zhí)行文件中,或被編譯為附屬程序集。利用Visual Studio .NET 中自帶的資源文件生成器
    (Resgen.exe),可以將.txt文件和.Resx文件轉(zhuǎn)換為.resources 文件格式。本例中只用到了字符串資源,所以在項(xiàng)目中添加兩個(gè)文本文件Resource_zh.txt 和Reource_en.txt。
    Reource_en.txt 文件中的內(nèi)容:
    menuItem1_Name=Language
    button1_Name=Exit
    label1_Text=This is English version!
    Resource_zh.txt 文件中的內(nèi)容:
    menuItem1_Name=語言
    button1_Name=退出
    label1_Text=這是中文版!
    需要注意的是Resource_zh.txt文件中含有漢字,必須以UTF-8編碼保存。在Visual Studio .NET集成開發(fā)環(huán)境中,可以先點(diǎn)擊“文件”菜單中的“高級(jí)保存選項(xiàng)”,選中UTF-8編碼格式,再保存文件。
    然后,點(diǎn)擊“程序”菜單中的“Visual Studio .NET命令提示”菜單,進(jìn)入DOS方式,輸入以下兩行命令,生成程序中能夠訪問的資源文件MyApp.resources和MyApp.zh-CN.resources。英文資源文件MyApp.resources 作為默認(rèn)的后備資源文件。MyApp.zh-CN.resources
    是中文資源文件,文件名中的“MyApp”是資源文件的根名稱,必須與后備資源文件的根名稱相同,“zh-CN”指定資源文件的區(qū)域性。
    F:\Csharp\MyApp>resgen Resource_en.txt,MyApp.resources
    F:\Csharp\MyApp>resgen Resource_zh.txt,MyApp.zh-CN.
    resources