我有一个网页(.aspx),它使用母版页并在网页中加载用户控件(.ascx)。我正在页面和用户控件上实现本地化。但本地化仅适用于用户控制部分,但不适用于.aspx页面。
我的所有网页都有一个基页类,在基页类中我覆盖了InitializeCulture()方法,在这里我设置了currentculture和currentuiculture。出于测试目的,我专门将文化和当前文化设置为“fr-CA”。
Thread.CurrentThread.CurrentCulture = new CultureInfo(“fr-CA”); Thread.CurrentThread.CurrentUICulture = new CultureInfo(“fr-CA”);
我使用visual studio为.aspx文件和.ascx文件生成.resx文件的默认语言,即“英语”和“法语”。
不确定为什么本地化不能在.aspx文件上运行,但在用户控件上工作正常。
答案 0 :(得分:0)
您可以覆盖Page
的{{1}}方法并在那里设置OnInit
属性。
另外,您是否正确命名了法语资源?一旦你不使用多个法语,我建议使用“fr”而不是“fr-CA”。
答案 1 :(得分:0)
尝试此页面上的说明:
http://msdn.microsoft.com/en-us/library/bz9tc508(v=VS.85).aspx
protected override void InitializeCulture()
{
string selectedLangauge = "fr-CA";
Thread.CurrentThread.CurrentCulture =
CultureInfo.CreateSpecificCulture(selectedLanguage);
Thread.CurrentThread.CurrentUICulture = new
CultureInfo(selectedLanguage);
base.InitializeCulture();
}
我的猜测是你没有尽早设置文化,但由于追赶事件,用户控制正在运行。 (http://msdn.microsoft.com/en-us/library/ms178472.aspx#catch_up_events_for_added_controls)