深入Resource實(shí)現(xiàn)多語言支持的應(yīng)用詳解
首先為假設(shè)有一個(gè)應(yīng)用程序CAStudy,接著右鍵添加一個(gè)資源文件Resource1.resx。
Resource1.resx里面如下:
Main函數(shù)如下:
static void Main()
{
ResourceManager resourceManager = new ResourceManager(
"CAStudy.Resource1",
Assembly.GetExecutingAssembly());
Console.WriteLine("String1 : " + resourceManager.GetString("String1"));
Console.WriteLine("String1 : " + Resource1.String1);
Console.ReadLine();
}
使用的ResourceManager構(gòu)造函數(shù)如下:
[SecuritySafeCritical]
public ResourceManager(string baseName, Assembly assembly);
在應(yīng)用程序編譯的時(shí)候Resource1.resx就會(huì)被編譯成Resource1的一個(gè)類。所以如果你不知道baseName是什么,也可以這樣:
ResourceManager resourceManager = new ResourceManager(
Resource1.ResourceManager.BaseName,
Assembly.GetExecutingAssembly());
或者你查看IL代碼,可以發(fā)現(xiàn)如下:
運(yùn)行結(jié)果如下:
假設(shè)我們要支持 英語-美國(guó)(en-US) 的人來訪問的話:
那么我們可以復(fù)制Resource1.resx ,從而生成Resource1.en-US.resx。
注意除了中間多出來了en-US之外,其他都相同,
當(dāng)然,如果你需要支持中文-臺(tái)灣,那么可以生成Resource1.zh-TW.resx.
Resource1.en-US.resx內(nèi)容如下:
可以看到,現(xiàn)在的是Hello。
使用的時(shí)候只需要修改
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
為什么修改 CurrentUICulture 就可以了呢?
// 摘要: // 獲取或設(shè)置資源管理器使用的當(dāng)前區(qū)域性以便在運(yùn)行時(shí)查找區(qū)域性特定的資源。 public CultureInfo CurrentUICulture { get; set; }
完整的Main函數(shù)如下:
static void Main() { ResourceManager resourceManager = new ResourceManager( Resource1.ResourceManager.BaseName, Assembly.GetExecutingAssembly()); Console.WriteLine("String1 :" + resourceManager.GetString("String1")); Console.WriteLine("String1 :" + Resource1.String1); Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US"); Console.WriteLine("String1 :" + resourceManager.GetString("String1")); Console.WriteLine("String1 :" + Resource1.String1); Console.ReadLine(); }
運(yùn)行結(jié)果如下:
- .NET 資源文件resx、Resources詳細(xì)說明
- WinForm項(xiàng)目開發(fā)中WebBrowser用法實(shí)例匯總
- WinForm項(xiàng)目開發(fā)中Excel用法實(shí)例解析
- WinForm項(xiàng)目開發(fā)中NPOI用法實(shí)例解析
- WinForm ToolTip使用方法小結(jié)
- WinForm實(shí)現(xiàn)為ComboBox綁定數(shù)據(jù)源并提供下拉提示功能
- WinForm實(shí)現(xiàn)移除控件某個(gè)事件的方法
- WinForm拖拽控件生成副本的解決方法
- WinForm自定義控件應(yīng)用實(shí)例
- WinForm實(shí)現(xiàn)讀取Resource中文件的方法
相關(guān)文章
C#中如何在Excel工作表創(chuàng)建混合型圖表實(shí)例
本篇文章主要介紹了C#中如何在Excel工作表創(chuàng)建混合型圖表實(shí)例,具有一定的參考價(jià)值,有需要的可以了解一下。2016-11-11C# char[]與string byte[]與string之間的轉(zhuǎn)換詳解
在本篇文章里小編給大家分享的是關(guān)于C# char[]與string byte[]與string之間的轉(zhuǎn)換的知識(shí)點(diǎn)內(nèi)容,需要的朋友們參考下2019-11-11C# 獲取數(shù)據(jù)庫(kù)中所有表名、列名的示例代碼
這篇文章主要介紹了C# 獲取數(shù)據(jù)庫(kù)中所有表名、列名,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06Unity實(shí)戰(zhàn)之制作動(dòng)畫編輯器
為了更方便地為UI視圖添加動(dòng)畫,將動(dòng)畫的編輯功能封裝在了UI View類中,可以通過編輯器快速的為視圖編輯動(dòng)畫。本文將通過Unity制作一個(gè)動(dòng)畫編輯器,需要的可以參考一下2022-02-02C#編程實(shí)現(xiàn)帶有Aero效果的窗體示例
這篇文章主要介紹了C#編程實(shí)現(xiàn)帶有Aero效果的窗體,涉及C#調(diào)用動(dòng)態(tài)鏈接庫(kù)針對(duì)窗體屬性的相關(guān)操作技巧,需要的朋友可以參考下2017-07-07C#利用ASP.NET?Core開發(fā)學(xué)生管理系統(tǒng)詳解
隨著技術(shù)的進(jìn)步,跨平臺(tái)開發(fā)已經(jīng)成為了標(biāo)配,在此大背景下,ASP.NET?Core也應(yīng)運(yùn)而生。本文主要利用ASP.NET?Core開發(fā)一個(gè)學(xué)生管理系統(tǒng),感興趣的可以學(xué)習(xí)一下2022-01-01C#使用yield關(guān)鍵字讓自定義集合實(shí)現(xiàn)foreach遍歷的方法
這篇文章主要介紹了C#使用yield關(guān)鍵字讓自定義集合實(shí)現(xiàn)foreach遍歷的方法,需要的朋友可以參考下2014-08-08