假设我有2个资源文件;一个叫HomeEN.resx
,另一个叫HomeFR.resx
。我已经查看了在线教程,这些教程显示了如何根据用户在浏览器中的设置自动完成资源文件的选择。
我想在运行时选择资源文件,如下所示:
protected void Page_Load(object sender, EventArgs e)
{
switch (TheLanguage) {
case 1:
// select the English file HomeEN.resx;
break;
case 2:
// select the French file HomeFR.resx;
break;
}
}
我如何撰写这些陈述?
感谢。
答案 0 :(得分:3)
通过设置Page的Culture
和UICulture
属性,可以自动读取正确的资源文件。请参阅MSDN samples
您只需要将文件重命名为分别符合预期模式Home.en.resx
和Home.fr.resx
。
答案 1 :(得分:1)
protected void Page_Load(object sender, EventArgs e)
{
System.Threading.Thread.CurrentThread.CurrentCulture = someCulture;
System.Threading.Thread.CurrentThread.CurrentUICulture = someCulture;
}
之后,如果你也按照上面的@ devio解决方案,将自动选择资源文件。
答案 2 :(得分:1)
如果要访问这两种资源,可以使用ResourceManager class
ResourceManager rm = new ResourceManager("Strings", typeof(Example).Assembly);
string strDE = rm.GetString("TheNameOfTheResource", new CultureInfo("de"));
string strES = rm.GetString("TheNameOfTheResource", new CultureInfo("es"));