我的 Android 应用程序连接到 asp.net 网络服务以注册用户。用户注册后,我会从服务器向用户发送一封欢迎电子邮件。由于我们在许多国家/地区都有客户,因此需要将电子邮件翻译成正确的语言。我在服务器上使用以下代码 (C#) 来获取电子邮件的正文:
string mailbody = (string)HttpContext.GetGlobalResourceObject("Resource", "mailbody");
在我的 App_GlobalResources 文件夹中,我有一个文件,其中包含名为 Resource.resx 的英文翻译和瑞典语翻译 Resource.sv.resx。
许多英语用户现在提示他们收到的是瑞典语翻译而不是英语翻译。每次我在我的 Android 手机上测试它时,我都会得到正确的翻译,所以我很难追踪到这个错误。从 iPhone 连接时,这也很好用。任何想法可能是错误的?有没有人见过这样的问题?
最佳答案
您描述的行为看起来很奇怪。它似乎与您的网络服务中的文化检测有关,当然 web.config 可能在这里发挥作用。
但是,将 culture 和 uiCulture 设置为“auto”应该会从网络浏览器中检测到最想要的文化,也就是说,我认为英语用户不应该是瑞典语……我怀疑一些奇怪的后备规则。
您真的确定您的中性文化资源 (Resource.resx) 是英文的(只是为了仔细检查一下)吗?
也许您在 Global.asax 中有一些覆盖?
如果两个问题的答案都是“没问题”,也许可以尝试将设置修改为 uiCulture="auto:en-US",以便语言直接回落到英语(美国)。没有其他资源和英文的中性文化资源,它应该,但是......
关于asp.net - 从 Android 连接时,asp.net web 服务中的翻译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6732475/