2016-07-28 83 views
-1

我試圖根據給予我的settingFile來設置我的應用程序的CultureInfo(我無法更改它的內容)。將CultureInfo設置爲國家/地區未知語言

在我settingFile我只有我應該例如GermanFrenchEnglish顯示(有關該國沒有任何信息)的語言名的訪問。

我設法使用

CultureInfo cultureInfo = CultureInfo.GetCultures(CultureTypes.AllCultures) 
           .Where(c => c.EnglishName == languageName).FirstOrDefault(); 

我的問題是,我現在應該做的就是我的CultureInfo:

Thread.CurrentThread.CurrentCulture = new CultureInfo({LANG-COUNTRY}); 

但我只有(通過cultureInfo.Name)的語言,所以我無法創建我的文化信息。

爭取做

Thread.CurrentThread.CurrentCulture = cultureInfo; 

也不能工作。

我想過做

new CulltureInfo({cultureInfo.Name+"-"+cultureInfo.Name.ToUpper()}); 

,但它並不適用於例如英語工作...

有沒有辦法對我的CultureInfo設置爲與我的語言中最常見的國家嗎?
我知道這不會是一個完美的解決方案(例如en-UK和en-US之間最常見的......)但我不認爲我可以做得更好,不知道我的用戶所在的國家/地區。

回答

1

這個var en = CultureInfo.GetCultures (CultureTypes.AllCultures).First(x=>x.Name=="en");會給你一個基地CultureInfo你的語言(在例子中的en)。如果您將查看「en-GB」,「en-US」,則您可以看到兩者都具有等於「en」的Parent

+0

也許我誤解了你的解釋,但'var en = CultureInfo.GetCultures(CultureTypes.AllCultures).First(x => x.Name ==「en」);'與'CultureInfo cultureInfo = CultureInfo .GetCultures(CultureTypes.AllCultures) 。Where(c => c.EnglishName ==「English」)。FirstOrDefault();'我仍然有同樣的問題,無法知道可能的國家(或最受歡迎)爲這種語言,所以沒有辦法創建我的'新的CultureInfo({LANG-COUNTRY})' – Belterius

+0

可能的國家(文化),你可以使用過濾器首先(x => x.Parent.Name ==「en」),而不是名稱。最受歡迎的不是編程而是人口統計。我的例子給你的文化沒有區域設置。 –

+0

只是第一個變體給你CultureType中立,第二國家特定。 –

相關問題