我的ASP.NET應用程序已被本地化(by using resources)許多文化。我需要的是找到所有這些文化(在運行時),例如填充DropDownList。如何在ASP.NET應用程序中獲取所有可用的文化名稱
我有代碼在windows應用程序中做到這一點 - 通過尋求衛星程序集構建可用文化的集合。
但是,網絡應用程序呢?找到衛星組件是可取的嗎?或者這可以通過其他方式完成?
有什麼建議嗎?
感謝
我的ASP.NET應用程序已被本地化(by using resources)許多文化。我需要的是找到所有這些文化(在運行時),例如填充DropDownList。如何在ASP.NET應用程序中獲取所有可用的文化名稱
我有代碼在windows應用程序中做到這一點 - 通過尋求衛星程序集構建可用文化的集合。
但是,網絡應用程序呢?找到衛星組件是可取的嗎?或者這可以通過其他方式完成?
有什麼建議嗎?
感謝
我有想法:遍歷所有。 .resx文件在應用程序的虛擬目錄中,並通過這種方式收集不同的文化名稱。我還沒有嘗試過,但我認爲這應該給我預期的結果。
像這樣的東西應該爲你工作...
var ass = Assembly.GetExecutingAssembly();
foreach(var c in CultureInfo.GetCultures(
CultureTypes.SpecificCultures |
CultureTypes.NeutralCultures))
{
try
{
var sat = ass.GetSatelliteAssembly(c);
// Add to dropdown
}
catch(FileNotFoundException)
{
}
}
我覺得你的問題是,以填補下拉列表與文化。
爲此,您需要維護一個數據文件/數據表,其中提到了所有支持的文化,然後您可以將其與下拉列表綁定。
請隨時詢問更多?
此代碼在基於Windows的應用程序中正常工作,但不在ASP.NET中。不確定,但我認爲GetSatelliteAssembly()試圖從一個目錄 \ .dll加載衛星程序集。而ASP.NET應用程序使用不同的位置。 –
2009-08-06 11:14:38
有趣的變量名稱 – 2009-08-10 13:33:58
+1爲您的答案。但那不是我正在尋找的。 – 2009-08-23 15:47:25