異なるロケールからのリクエストに対して別のmsgを返そうとしています。以下のサンプルコードは、OAuth
の自己ホストアプリケーション(.exeアプリケーション)の一部です。テキスト文字列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ユーザー名とパスワードを使用して、要求のために資格を付与し、ために簡素化、私は、ハード中国でzh
にロケールをコード化テキスト英語テキスト。
ところで、私は私のApp.configファイル(セルフホストがweb.configファイルを持っていない)にsystem.web
セクションを追加しました:私は中国のテキストリソースをどこに置くかわからないんだけど
<system.web>
<globalization culture="auto" uiCulture="auto" enableClientBasedCulture="true"></globalization>
</system.web>
なぜなら、これは従来のASP.NETプロジェクトではなく、それらを持っていないからです。特別なプロジェクトフォルダ、Projectフォルダ構造を見て、デフォルトの存在以外のファイルを置いて、変換されたキー/ Access Modifer
を一般公開する:
残りのクライアントでテストした場合、返される文字列は常に英語ですが、誰でも手助けできますか?
@Marcoの回答によれば、res_xファイルをApp_GlobalResourcesフォルダに移動することをお勧めします。 –