我知道如何通过创建资源文件将本地化应用于页面。但有一件事真的让我心疼,因为几天后,UIculture如何应用于屏幕背景中的ASP.NET页面?
想到的想法是在Page Life Cycle的事件中。 如果是,那么在哪个事件以及如何测试?
请澄清。 感谢
答案 0 :(得分:3)
以声明方式设置ASP.NET网页的文化和UI文化
要为所有页面设置UI文化和文化,请将全球化部分添加到Web.config文件,然后设置uiculture和culture属性,如以下示例所示:
<globalization uiculture="es" culture="es-MX" />
要为单个页面设置UI文化和文化,请设置@ Page
指令的Culture和UICulture属性,如以下示例所示:
<%@ Page UICulture="es" Culture="es-MX" %>
要让ASP.NET将UI文化和文化设置为当前浏览器设置中指定的第一种语言,请将UICulture和Culture设置为auto
。或者,您可以将此值设置为auto:culture_info_name
,其中culture_info_name
是文化名称。有关文化名称的列表,请参阅CultureInfo。您可以在@ Page
指令或Web.config文件中进行此设置。
以编程方式设置ASP.NET网页的文化和UI文化
en-US
)。这些属性是页面内部的,只能在页面中使用。 C#代码示例:
protected override void InitializeCulture()
{
if (Request.Form["ListBox1"] != null)
{
String selectedLanguage = Request.Form["ListBox1"];
UICulture = selectedLanguage ;
Culture = selectedLanguage ;
Thread.CurrentThread.CurrentCulture =
CultureInfo.CreateSpecificCulture(selectedLanguage);
Thread.CurrentThread.CurrentUICulture = new
CultureInfo(selectedLanguage);
}
base.InitializeCulture();
}
请参阅下面的详细页面生命周期:
答案 1 :(得分:2)
除web.config
和页面标记中的设置外,还有页面方法InitializeCulture()
,您可以覆盖它以包含额外的逻辑。
protected override void InitializeCulture()
{
// include your extra logic
//base.Culture
base.InitializeCulture();
}