After searching on website I post this question. I am aware of the fact that by default assemblies are "culture neutral" and one can create satellite assemblies with only resources (and no code) with culture specific information and place them inside the same folder as the culture name (i.e. en-us). But the question is, what is culture? Some specific real-life examples would help.
2 Answers
Per MSDN, this includes such things as the names for the culture, the writing system, the calendar used, and formatting for dates and sort strings.
For translations, the most significant aspect is a combination of language and dialect. Here is a good list of examples.
For example, consider British English (en-GB) vs. American English (en-US) vs. Canadian English (en-CA) vs. Australian English (en-AU) vs. the at least ten other English dialects that exist (I kid you not / see the list I linked). Then, compare and contrast them to say Russian as spoken in Russia (ru-RU). Aside from differences in language, there are also different symbols used for the radix indicator, digit grouping, date (MDY vs DMY), etc...

- 71,784
- 24
- 131
- 181
-
Ok, but what information goes inside the satellite assembly if it should not have code inside? Based on my understanding, Microsoft recommends that satellite assemblies should consume some culture neutral assemblies. – IntelligentBinary Aug 27 '12 at 16:32
-
Well, certainly you can put phrases in the language of the culture into each culture's satelite assembly. – Michael Goldshteyn Aug 27 '12 at 16:34
-
They are for even bigger issues like translating. So in your billing software when selling to the German market you can show rechnungsstellung, the UK market Invoice, despite the fact "you" are French and called the class Facture – Tony Hopkinson Aug 27 '12 at 17:03
It's lots of things dd/mm/yyyy instead of mm/dd/yyy
EUR1.500,00 instead of $1,500.00
It's sort orders left to right, or right to left.
Basically culture is way of abstracting all these really irritating issues, so you are left with the two main issues we have to deal with
Use the installed culture without having to know what it is
e.g. DateTime.Now.ToString("d");
Use this specific culture no matter what.
DateTime.Now.ToString("d",_currentUser.Culture);
One of the most valuable parts of .net this. Used to be a total nightmare.

- 20,172
- 3
- 31
- 39
-
Thanks Toni. That helps. So, where can I specify the culture information? In AssemblyInfo.cs file? As soon as I do that, it violates the rule that culture specific assemblies should not have any code in it (only resources are allowed). I am sure I am missing something here :) – IntelligentBinary Aug 27 '12 at 17:03
-
Well there's one major fox paws already Toni??. Have a read of this for MS recomendations http://msdn.microsoft.com/en-us/library/w7x1y988.aspx – Tony Hopkinson Aug 27 '12 at 17:19