When tossing custom exceptions or giving messages towards the consumer, you could use hard-coded the strings (including string constants), use resource-only devices or get strings from the table inside a database.

I'd like my application to have the ability to switch to another language easily without needing to recompile. While storing the string assets inside a set up or database would accomplish this purpose, it increases the complexity of program logic which increases the price of the merchandise.

My real question is: what's the easiest method to go with the aim in your mind without disregarding the price that accompany each option? For those who have an exercise that's much better than what's been listed, I'd like to listen to it.

Technologies:
OS: Home windows family
Platform: .Internet Frame 2 or more
Language: C#
Database: MS SQL 2005 or more

Edit

In VS2008 whenever you produce a resource, you are able to define if it is internal or public. So assume we place it to public, within an set up known as ClassLibrary1, we are able to access a house like:

ClassLibrary1.Qualities.Assets.InvalidError

Where InvalidError may be the title from the error. Again I do not think this adds any compelxity towards the logic.

Should you produce a new Resource File known as exactly like the default, however add the culture info prior to the resx. (NOTE: You will have to create it elsewhere then copy it in to the miracle Qualities folder.)

Your application will for those who have applied the culture towards the thread being able to access the resource pull the right string in the specific assets.