If you are an Asp.net MVC developer and live in non English speaking country, then you've faced the challenge of application localisation. Although frameworks these days support localisation it's usually not a straightforward process. Especially when it comes to web applications. There's always a dilemma how to implement localisation and how to choose request locale. Should it follow browser language settings or user preference? Either way there's an underlying base foundation that can be used to implement each.
This post is not about localisation in general but rather just about application model classes and their property names localisation when presented in Asp.net MVC views by means of
Html.LabelFor() extension methods. There already is a class
DisplayNameAttribute but it lacks capabilities we need.
This blog post is related to .net framework 3.5 and older because there's a new attribute provided by the .net framework 4 and newer. It's called
DisplayAttributewhich has even more capabilities than those implemented below.