我的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