Q:

System message localization

I have an Asp.Net MVC website. In the website there are some notifications and I want to localize the notifications that the system sends the users. Kind of like what StackOverflow shows but when the users change their language, I want them to see the notifications in their language.
I wonder what's the best solution for this. I could save the message as an enum and the Id of related info as a few ints. Like this:
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; }
}

Problem with this is the Ids. They don't mean much and they're not strongly typed so I would have to know how to use them based on type.
The other solution would be to just save it as string and try to translate it if the language is not English. Which could easily be messy. 
The final method would be to just store the message as the currently selected language and when they change their language the message would stay the same and the new messages would be in the new language.
Maybe there's a better and more standard approach to this but I just came up with these.

A:

as I Suggest you have to store all notifications once as master in different language  as
English -this is a pen for {0} and {1}

Germen -dies ist ein Stift {0} und {1}

show when you need to send notification according to that just select message and pass parameters  

