C# 如何修复Asp.net-mvc网站(使用区域性和.resx文件)突然改变语言?
我们支持几种语言,在我们网站的属性中存储了不同的翻译。以下是其中一些: Resources.es.resx、Resources.fr.resx、Resources.resx(其中包含英文翻译) 有时(比如去年的3次),我们的网站对所有英语用户来说都是法语的 我们实现了一些日志记录,试图了解发生了什么。上次出现错误时,我们观察到,当尝试从Resources.resx文件获取示例字符串时,结果来自Resources.fr.resx文件。我们所有的用户都是这样 这就是我们获得该字符串的方式:C# 如何修复Asp.net-mvc网站(使用区域性和.resx文件)突然改变语言?,c#,asp.net-mvc,asp.net-core,localization,resources,C#,Asp.net Mvc,Asp.net Core,Localization,Resources,我们支持几种语言,在我们网站的属性中存储了不同的翻译。以下是其中一些: Resources.es.resx、Resources.fr.resx、Resources.resx(其中包含英文翻译) 有时(比如去年的3次),我们的网站对所有英语用户来说都是法语的 我们实现了一些日志记录,试图了解发生了什么。上次出现错误时,我们观察到,当尝试从Resources.resx文件获取示例字符串时,结果来自Resources.fr.resx文件。我们所有的用户都是这样 这就是我们获得该字符串的方式: stri
string englishResource = Properties.Resources.ResourceManager.GetString("Add", new CultureInfo("en-ca", useUserOverride: false));
这就好像没有找到Resources.resx,而语言默认为Resources.fr.resx一样
当网站正常工作时,返回的字符串总是来自Resources.resx,正如预期的那样
有人知道为什么会发生这种情况以及如何解决吗
编辑:
以下是当网站以法语显示时,我们为英语用户提供的信息:
{
SessionCulture: “en”,
UserLanguages: [
“en-US”,
“en;q=0.9”,
“fr;q=0.8",
“es;q=0.7”,
“ca;q=0.6",
“it;q=0.5”
],
LocalizationSystemLanguage: “en”,
CurrentThreadCulture: “en-CA”,
CurrentThreadUICulture: “en-CA”,
EnglishResource: “Ajouter”,
FrenchResource: “Ajouter”,
SpanishResource: “Agregar”
}
“EnglishResource”字符串应为“Add”而不是“Ajouter”