2017-02-07 10 views
0

私はAsp.Net MVC Webサイトを持っています。 Webサイトにはいくつかの通知があり、システムがユーザーに送信する通知をローカライズする必要があります。 StackOverflowのようなものですが、ユーザーが言語を変更したときに、それらの言語で通知を表示する必要があります。システムメッセージのローカライゼーション

これには最適な解決策がありますか?メッセージをenumとし、関連情報のIDを数えてintとして保存することができました。このように:

public class NotificationMessage 
{ 
    [Required] 
    public virtual ApplicationUser User { get; set; } 

    public NotificationMessageType Type { get; set; } 

    public int Id1 { get; set; } 
    public int Id2 { get; set; } 
    public int Id3 { get; set; } 
} 

この問題はIDです。彼らはあまり意味がありませんし、強く型付けされていないので、型に基づいてそれらを使用する方法を知っていなければなりません。

他の解決方法は、単に文字列として保存し、言語が英語でない場合に翻訳を試みることです。それは簡単に厄介かもしれない。

最終的な方法は、メッセージを現在選択されている言語として保存することです。言語を変更すると、メッセージはそのままで新しいメッセージは新しい言語になります。

多分、これにはより良い、より標準的なアプローチがありますが、私はこれらを考え出しました。

+0

推奨方法のがそれだけを選択したメッセージに応じて通知を送信し、合格する必要があるときに

English -this is a pen for {0} and {1} Germen -dies ist ein Stift {0} und {1} 

ショーとして、異なる言語でのマスターとして、一度すべての通知を格納する必要が提案としてこれはリソースを使用することです。この記事を見てください:http://www.c-sharpcorner.com/UploadFile/4d9083/globalization-and-localization-in-Asp-Net-mvc-4/ – JuanR

+0

@Juan私はリソースについて知っています。問題は、通知を保存する方法ですか? –

答えて

1

は、私はあなたがパラメータ

+0

これは私が言及した最初の解決策でしょうか?そのようにして、これらの引数を整数IDとして格納する必要があります。異なる種類の通知には異なる数の引数があり、異なる型もあります。 –

+0

はい。必要なパラメータを使用して各通知を別の言語で格納する必要があるため、通知を作成するときにString.Formatを使用してパラメータ値を渡す必要があります。 –

+0

同じことをする方法が他にありませんでした。あるいは、翻訳者が文章全体を正確に翻訳できるわけではないので、通知を別の言語に翻訳することはできません。 –

関連する問題