我试图从不同语言环境请求返回不同的消息,下面的示例代码是我的一部分OAuth
自主应用程序(.exe应用程序)for授予证书与用户名和密码的要求,为简化起见,我硬编码的语言环境zh
这是中国:ASP.NET WEB API的文本字符串本地化2自主应用程序
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
string culture = "zh";
CultureInfo ci = new CultureInfo(culture);
Thread.CurrentThread.CurrentUICulture = ci;
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(ci.Name);
Resources.Culture = ci;
context.SetError("invalid_grant", Resources.UserNameOrPwdError_ErrorMsg);
// omit other stuff....
}
还有,我已经试过:
var testStr = Resources.ResourceManager.GetString("UserNameOrPwdError_ErrorMsg", ci);
两种情况retur请输入英文文本。
顺便说一句,我已经添加system.web
节我的App.config(自主机不具备的web.config):
<system.web>
<globalization culture="auto" uiCulture="auto" enableClientBasedCulture="true"></globalization>
</system.web>
我不知道在哪里把中国的文字资源文件,因为它不是传统的ASP.NET项目,并且没有那些特殊项目文件夹,所以通过查看Project文件夹结构,除了默认存在的文件之外,我还添加了一个文件并添加了翻译的键/值对,I'已将Access Modifer
设置为公开:
用其他客户端测试过,返回的字符串总是英文,任何人都可以帮忙?
根据@Marco答案,将resx文件移动到App_GlobalResources文件夹中是可取的。 –