2016-10-31 16 views
0

AspNetCore 1.1プレビューを使用すると、私はdocumentationのデモンストレーションで自分のリソースをローカライズする方法を見つけることができます。たとえば、検証メッセージなどの組み込みメッセージをローカライズしたいと思います。AspNetCore組み込みメッセージをフランス語でローカライズするにはどうすればよいですか?

私のアプリケーションはフランス人だけが使用するよう意図されているので、私のデフォルトカルチャはfr-FRです。

組み込みのすべてのリソースをフランス語にローカライズするにはどうすればよいですか?

+0

クライアントのブラウザは 'Accept-Language'httpヘッダーを使用してフランス語でリクエストする必要があります(チェックアウトhttps://aspnetsource.azurewebsites.net、フレームワークコードがこれらのAPIを呼び出す方法を調べる場合はチェックアウトしてください)。しかし、リクエストフィルタを使用してデフォルトのロケールを設定し、現在のスレッド( 'Thread.Current.CurrentLocale = [...]'のようなもの)でロケールを設定することができます。 – sturcotte06

+0

「組み込みメッセージ」とはどういう意味ですか? –

+0

検証属性からの標準的な検証メッセージ、識別結果からの認証メッセージなど、フレームワークから返されたもの。 –

答えて

1

1.1プレビュー1では、すべてフレームワークメッセージを別の言語に変換するAPIはありません。

データアノテーションの検証では、コード内のエラーメッセージをカスタマイズできます。フランス語をサポートしたいと考えているので、ValidationAttribute.ErrorMessageプロパティをオーバーライドするのが最も簡単です。

例:

public class LoginViewModel 
{ 
    [EmailAddress(ErrorMessage = "(Translation for 'this email is invalid' here)")] 
    public string Email { get; set; } 
} 

あなたはまたValidationAttribute.ErrorMessageResourceNameValidationAttribute.ErrorMessageResourceTypeプロパティを使用することができます。詳細については、https://docs.microsoft.com/en-us/dotnet/core/api/system.componentmodel.dataannotations.validationattributeを参照してください。

さらに低レベルの制御が必要な場合は、フレームワークのローカライゼーションを上書きする必要があります。 APIのようなIStringLocalizerが存在します。 documentation you linked toには、これらの拡張ポイントの一部が導入されています。

+0

このアプローチの問題点は、検証メッセージが難しくないため、ローカライズするすべての文字列を知る必要があることです。あなたがアイデンティティの結果メッセージを扱わなければならないときの悪夢。しかし、答えをありがとう。 –

関連する問題