C# App_GlobalResources在asp.net中不支持多语言
代码隐藏:C# App_GlobalResources在asp.net中不支持多语言,c#,asp.net,app-globalresources,C#,Asp.net,App Globalresources,代码隐藏: ResourceManager rm; CultureInfo ci; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Session["Flag"] = null; Session["Language"] = null; Thread.CurrentTh
ResourceManager rm;
CultureInfo ci;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Session["Flag"] = null;
Session["Language"] = null;
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
rm = new ResourceManager("Resources.Language",
System.Reflection.Assembly.Load("App_GlobalResources"));
ci = Thread.CurrentThread.CurrentCulture;
LoadLanguage(ci);
}
}
private void LoadLanguage(CultureInfo ci)
{
lblHindi.Text = rm.GetString("Hindi", ci);
lblTelugu.Text = rm.GetString("Telugu", ci);
}
我的App_GlobalResources文件夹中有以下文件
设计:
<center>
<a href="Default.aspx"><asp:Label ID="lblHindi" runat="server" Text="Hindi"></asp:Label></a>
<br />
<br />
<a href="Default.aspx"><asp:Label ID="lblTelugu" runat="server" Text="Telugu"></asp:Label></a>
<br />
</center>
但是它不起作用我该怎么办
请帮助您可以添加并尝试此代码吗 “protected override void InitializeCulture()”->用于调用重写应用程序层区域性的方法
protected override void InitializeCulture()
{
//...
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
base.InitializeCulture();
ci = Thread.CurrentThread.CurrentCulture;
//...
}
private void LoadLanguage(CultureInfo ci)
{
lblHindi.Text = rm.GetString("Hindi", ci);
lblTelugu.Text = rm.GetString("Telugu", ci);
}
你写的代码非常好。问题似乎在于从资源文件访问字符串的方式。您必须在每个资源文件中维护相同的密钥,而值将被翻译成不同的语言。假设您将在Language.resx文件中创建一个具有英文值的密钥“SOME_KEY1”。在其他resx文件中创建具有不同值的同一密钥,并以其他语言翻译。之后,您可以按如下方式访问已翻译的字符串:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Session["Flag"] = null;
Session["Language"] = null;
rm = new ResourceManager("Resources.Language",
System.Reflection.Assembly.Load("App_GlobalResources"));
LoadLanguage();
}
}
private void LoadLanguage()
{
lblHindi.Text = rm.GetString("SOME_KEY1", new CultureInfo("hi-IN"));
lblTelugu.Text = rm.GetString("SOME_KEY1", new CultureInfo("te-IN"));
}
我在哪里调用LoadLangauage方法