.aspx和.ascx中的本地化

时间:2010-12-27 23:12:30

标签: asp.net localization

我有一个网页(.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文件上运行,但在用户控件上工作正常。

2 个答案:

答案 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