C# ASP.NET网站的本地化不起作用
我试图本地化一个asp.net网站,但它不能正常工作 目前,我有一个用户控件,我希望将其本地化。因此,在UserControls文件夹中,我创建了一个C# ASP.NET网站的本地化不起作用,c#,asp.net,localization,globalization,C#,Asp.net,Localization,Globalization,我试图本地化一个asp.net网站,但它不能正常工作 目前,我有一个用户控件,我希望将其本地化。因此,在UserControls文件夹中,我创建了一个App\u LocalResources文件夹,以及4个用于本地化的文件: UCMain.aspx.resx UCMain.aspx.it-it.resx UCMain.aspx.de-de.resx UCMain.aspx.fr-fr.resx 在UserControls文件夹中,我有mainUCMain.aspx,在UCMain.aspx中,我
App\u LocalResources
文件夹,以及4个用于本地化的文件:
UCMain.aspx
,在UCMain.aspx中,我有以下简单文件:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UCMain.ascx.cs" Inherits="SCPerformance.UserControls.UCMain" %>
<%@ Import Namespace="SCPerformance.Shared.Models" %>
<div class="PanelContainer">
<div class="ContentTitle2">
<asp:Label runat="server" ID="lblAboutText" meta:resourcekey="lblAboutTextResource1" />
</div>
</div>
当我单击已有的标志时,区域性设置正确,因此这不是问题所在。问题是检索实际文本,我总是得到英文版本
我有什么问题
感谢您的帮助和时间。这是另一个适用于我的asp网站的解决方案,使用4种语言在我的“GlobalResource”文件夹中。 你试过这个选项吗 C#——重载函数初始化文化
protected override void InitializeCulture()
{
try
{
string langID = "fr-FR";
Thread.CurrentThread.CurrentUICulture = new CultureInfo(langID);
base.InitializeCulture();
}
catch (Exception e)
{
Console.Out.WriteLine(e.Message);
}
}
ASP-->
线程.CurrentThread.CurrentCulture的输出是什么?如果您的应用程序中有匹配的区域性,那么您在该资源文件中是否确实有名为lblAboutTextResource1
的资源密钥?嗨,matty,这取决于我单击的标志,是的,我得到的是CurrentCulture,是的,我有一个使用正确语言的资源文件,以下代码在后台工作:-lblAboutText.Text=(string)GetLocalResourceObject(“lblAboutTextResource1.Text”);您没有在加载页面上设置区域性,是吗?如果是这样的话,那么在请求生命周期中就太晚了,因为在此之前会检索到控件的文本。不过,这不一定要在GlobalResources中吗?
protected override void InitializeCulture()
{
try
{
string langID = "fr-FR";
Thread.CurrentThread.CurrentUICulture = new CultureInfo(langID);
base.InitializeCulture();
}
catch (Exception e)
{
Console.Out.WriteLine(e.Message);
}
}
<asp:Label runat="server" ID="lblAboutText" Text="<%$ Resources:UCMain,lblAboutTextResource1 %>" ></asp:Label>