我有一个需要本地化的网络表单网站。我的意思是,它是本地化的,我只需要根据域设置正确的语言。类似的东西:
protected override void InitializeCulture()
{
var i = Request.Url.Host.ToLower();
var domain = i.Substring(i.Length - 2, 2);
if (domain == "se")
{
Thread.CurrentThread.CurrentCulture =
CultureInfo.CreateSpecificCulture("sv-SE");
Thread.CurrentThread.CurrentUICulture = new
CultureInfo("sv-SE");
}
else if (domain == "dk")
{
Thread.CurrentThread.CurrentCulture =
CultureInfo.CreateSpecificCulture("da-DK");
Thread.CurrentThread.CurrentUICulture = new
CultureInfo("da-DK");
}
}
我的第一个问题是:我是否真的需要在每个页面上调用InitializeCulture()
以获取正确的资源?
第二个问题。我也有一些全球资源。如果是第一个问题,那么它们也会正确设置吗?
聚苯乙烯。 1}}和uiCulture="auto"
在webconfig中是不够的(长篇故事)。
答案 0 :(得分:2)
是。你在做什么符合Microsoft-recommended method。 由于您的示例根据URL确定要使用的语言,因此每个页面请求可能需要不同的语言,因此您无法避免为每个页面执行此操作。
根据您的第二个问题,是的,所有资源加载都取决于CurrentCulture
。因此,本地和全球资源都会受到文化初始化的影响。
答案 1 :(得分:2)