我们支持几种语言,在我们的网站属性中存储了不同的语言说明。这里是其中的一些: Resources.es.resx,Resources.fr.resx,Resources.resx(包含英语翻译)。
有时(如去年的3次),我们的网站对所有英语用户都使用法语。
我们实施了一些日志记录以尝试了解正在发生的事情。上次发生此错误时,我们观察到的是,当尝试从Resources.resx文件中获取示例字符串时,结果是从Resources.fr.resx文件中获得的。我们所有的用户都是这种情况。
这是我们获取该字符串的方式:
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”