On Mon, Sep 10, 2012 at 1:20 PM, Chris Stankevitz <[email protected]> wrote: > On Sun, Sep 9, 2012 at 10:05 PM, Joshua Murphy <[email protected]> wrote: >> A 'locale' is a collection of character set, language, date/time >> format, currency format, etc > > Josh, > > Thank you. I now understand what a "locale" is. It is surprising to > me that the string "en_US.UTF8" tells the OS about currency, > date/time, etc. I always thought "UTF8" was just a "character > encoding" (not really sure what that is either but I would not have > guessed that UTF8 describes where the commas go in a currency).
It doesn't, really. :) The locale code is typically composed of the format: language_region.encoding So for en_US.UTF8, language (en = English), region (US = United States), and encoding (UTF8 = Unicode). In this case the region code is where it will get the information about currency format etc. Some places also have an additional script identifier (languages which can be written in both Latin and Cyrillic, for example), and other modifiers are allowed to specify currencies, calendar formats, number system, etc. which might not be easily implied simply by knowing the language and country.

