2014-10-07 135 views
1

我在c#中有一個基於窗口的應用程序。我在哪裏顯示一些基於所選語言的消息框。它與表單級別的資源正常工作,但如果我想訪問全局資源文件(項目級別),該怎麼辦。如何閱讀全局資源文件

ResourceManager res_man = new ResourceManager("Resources",typeof(Form2).Assembly); 
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("ar-SA"); 
     string s = res_man.GetString("String1"); 
     MessageBox.Show("Arabic-" + s); 

我試過,但任何怎麼不工作

有關更新ANS enter image description here

回答

1

試圖改變當前文化的地方UI文化 -

System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("ar-SA"); 

我使用以下代碼從全球資源中獲取特定文化的具體價值 -

ResourceManager myManager = new ResourceManager(typeof(Resources.Strings)); 
String currencySymbol = myManager.GetString("Currency", CultureInfo.GetCultureInfo("en-GB")); 
+0

「Resources.Strings」不是我訪問,請介紹CURRENCYSYMBOL是什麼? – 2014-10-07 06:51:58

+0

「CurrencySymbol」只是您持有該值的變量。我正在更新答案。 – 2014-10-07 06:54:36

+0

但仍然Resources.Strings我無法訪問。我正在添加一個屏幕截圖。請參見問題面板 – 2014-10-07 06:57:04

0

訪問修飾符默認爲內部。你使用過PublicResXFileCodeGenerator嗎?

當您在Visual Studio中打開RESX文件時,可以將Access Modifier設置爲公共。有一個下拉框可以在更改訪問修飾符的表單頂部找到。

之後,你將能夠訪問:

var resxManager = new ResourceManager(typeof(Resource)); 
var currentString = resxManager.GetString("Practitioner", CultureInfo.GetCultureInfo("en-US")); 

這裏可能是一個相關的問題:Visual Studio - Resx File default 'internal' to 'public'