【发布时间】:2013-12-06 15:16:21
【问题描述】:
我正在使用 MVC 4、C# 和 Razor 构建网站,但在实施国际化方面遇到了问题。
在关注Nadeem Afana's 关于国际化的博客后,我成功地正确实现了 90% 的英语上下文。但是,我遇到了在错误视图中工作的资源的问题(下面的示例代码)。
<h1 class="grey lighter smaller">
<span class="blue bigger-125">
<i class="icon-warning-sign"></i>
@Resources.ErrorMessage
</span>
</h1>
当抛出错误(无论是 404 还是 500)时,它会重定向到错误控制器并根据处理的异常呈现必要的视图(下面的示例)。然而,与其他页面不同的是,它尝试将语言转换为 en-us,网站的其余部分仅将其转换为 en,而后者是正确的格式。
public ActionResult ServerError()
{
Response.StatusCode = (int) HttpStatusCode.InternalServerError;
return View();
}
如果数据库中不存在文化的第二部分(例如“我们”),我在帮助器中有代码(例如下面的示例)
public static string GetNeutralCulture(string name)
{
if (name.Length > 2)
{
return name;
}
return name.Substring(0, 2);
}
据我了解,该网站无法将语言转换为“en-us”,因为数据库中不存在该语言的数据。但这并不能解决为什么当我指定将语言剥离为帮助器中的中性文化(如果不支持)时,它将其转换为“我们”的原因。由于我不知道如何纠正这个问题,有人可以给我一些建议。
哦,我已经检查了母版页,确保网站的主要语言设置为<html lang="en">,以排除这是一个问题的可能性。
【问题讨论】:
标签: c# asp.net-mvc razor internationalization