Date: Sun, 07 Jul 2019 19:39:47 -0700 From: "Ronald F. Guilmette" <r...@tristatelogic.com> Message-ID: <42579.1562553...@segfault.tristatelogic.com>
| I confess I have and did explicitly set within my personal .login file | thusly: | | setenv LANG en_US.UTF-8 That should be fine (I'll pass on the sanity of still using any csh variety shell in this day and age, as that's unrelated). | For the rest, if you think that they are all improper, No, as David Levine said, and I noted in my subsequent message, I was just misinterpreting the output you supplied (as if it were part of a .profile). | since I seem to be simply inheriting their | common and systemwide defaults for all of these things. Not quite, since you set LANG (which is reasonable) the others are just inheriting its value (not being set to anything different) which it as it should be. The systemwide defaults (if you did not have lang set) would be "C" for everything (except LC_ALL). | *I* do not even have any real clear idea of | what any of these envars do, or are supposed to do, LC_CTYPE sets the character type - defines how characters are encoded (as in UTF-8 or ISO-8859-1 or BIG5 (Chinese) etc). LC_COLLATE defines how characters are ordered LC_TIME says how time (of day) is represented (d/m/y m/d/y, 12 or 24 hour, etc) LC_NUMERIC is how numbers are represented, incuding what character is used for the "decimal point" (aka radix character) and as the grouping character (and how many digits in a group) etc. Also how negative numbers are written. That is for everything except: LC_MONETARY does similar for numeric values that are monetary values ($3.75 etc). That allows -3 to be how a normal negative number is represented, where as a $3 debt might be (3) instead (the way accountants write things sometimes). LC_MESSAGES defines the language to use for messages from any utilities that have message catalog files (essentially it gets converted to the file name of the file which contains the strings (format strings) to be used for messages for a particular program). Then LANG provides a default value for all of those, and unless you need some special effect, is generally the right thing to set to simply say (I want French as in France, or as in Canada, or I want US English, or British English, or Australian English) - and then you just get all of the others being correct for that environment. I sometimes set LANG and then LC_TIME to a locale of my own which avoids the ambiguous x/y/z format dates (which are used, in different ways, in most English locales) and sets 24 hour time rather than 12 hgour am/pm which I simply prefer. LC_ALL is an override - when set all the others get ignored, and this one is used for everything. It's only appropriate use is when something needs to ignore whatever the user might have set and operate in a particular known locale in order to work correctly - things like [a-z] in patterns give weird results in some locales where 'z' isn't the last letter of the alphabet (there are many such oddities around). kre -- nmh-workers https://lists.nongnu.org/mailman/listinfo/nmh-workers