【问题标题】:Set a different language for ASP.NET MVC errors为 ASP.NET MVC 错误设置不同的语言
【发布时间】:2015-11-23 17:41:14
【问题描述】:

我在 Visual Studio 2015 上为葡萄牙语配置了一个 ASP.NET MVC 应用程序。在调试此应用程序时,我设置了<customErrors mode="Off" />,但所有错误都以葡萄牙语显示,我想用英语查看它们。

我尝试在 Web.config 中进行设置:

<globalization uiCulture="en-US" culture="en-US" enableClientBasedCulture="true" />

在 Global.asax 我试过了:

Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-US");

Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;

我也卸载了Nuget包Microsoft.AspNet.Mvc.pt-br,没有成功。

这个question 类似,但我需要一个不涉及更改机器配置或安装组件的解决方案,因为我的工作场所不允许这样做。

如何使所有错误消息以特定语言(在本例中为英语)显示?

【问题讨论】:

  • 你看到这个了吗? stackoverflow.com/questions/209133/… 你在哪里设置这种文化?也许您是在管道中的异常处理步骤之后进行设置
  • 我没有看到,但该解决方案取决于try/catch,我正在寻找一个更通用的解决方案,可以为整个应用程序配置,特别是当你的代码没有达到。不过谢谢。
  • 您可以使用 CultureInvariant 进行设置,但是,它还会覆盖任何本地化和全球化配置,例如十进制转换,这会导致葡萄牙语格式的应用程序失败。
  • @DavidG - 我为重复标志添加了解释。

标签: c# asp.net-mvc globalization


【解决方案1】:

今天当我再次尝试时,令我惊讶的是,消息是英文的(几乎,见下文)。我试图重现昨天的错误,但我不能。

也许这只是重新启动(VS 或 PC)的问题。我还在晚上继续在另一台 PC 上处理该项目,但没有处理与此问题相关的任何事情,所以我不能说它有什么不同。我在 Web.config 中设置的只是:

<globalization uiCulture="en-US" culture="en-US" enableClientBasedCulture="true" />

但仍然不是所有内容都是英文的。在尝试重现错误时,我强制库加载错误,我使用了一个需要安装 Ninject 的 DLL。错误消息是(强调我的翻译部分):

“/”应用程序中的服务器错误。 无法加载文件或程序集“Ninject,Version=3.2.0.0,Culture=neutral,PublicKeyToken=c7192dc5380945e7”或其依赖项之一。 O sistema não pode encontrar o arquivo especificado。

说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

那部分应该是:The system cannot find the file specified.

在这种情况下,我认为只能通过编程方式完成的工作不多。

【讨论】:

    【解决方案2】:

    在葡萄牙语版本中卸载 .net 框架并重新安装英文版本,这应该可以解决问题。

    【讨论】:

    • 它可以工作,但正如我在问题中所说,这不是我的选择,因为我的工作场所不允许这样做。不过还是谢谢。
    • 完全不相关
    猜你喜欢
    • 2011-04-30
    • 1970-01-01
    • 2013-01-10
    • 2012-01-03
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多