我有一个需要本地化的网络表单网站。我的意思是,它是本地化的,我只需要根据域设置正确的语言即可。就像是:
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()
在每个页面上加载正确的资源?
第二个问题。我也有一些全球资源。如果第一个问题是肯定的,它们也会被正确设置吗?
Ps. uiCulture="auto"
and enableClientBasedCulture="true"
在网络配置中是不够的(长话短说)。
是的。您正在做的事情符合微软推荐的方法 http://msdn.microsoft.com/en-us/library/bz9tc508.aspx。
由于您的示例根据 URL 确定要使用的语言,因此每个页面请求可能需要不同的语言,因此您无法避免为每个单独的页面执行此操作。
根据你的第二个问题,是的,所有资源加载都取决于CurrentCulture
。因此,本地和全局资源都会受到区域性初始化的影响。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)