Xiphos Locale Bug?
Polytropon
freebsd at edvax.de
Tue Nov 6 01:42:18 UTC 2012
On Mon, 05 Nov 2012 19:25:54 -0600, Joseph a Nagy Jr wrote:
> On 11/05/12 19:19, Polytropon wrote:
> > On Mon, 05 Nov 2012 18:54:43 -0600, Joseph a Nagy Jr wrote:
> >> FreeBSD 9.0-RELEASE, i386
> >>
> >> Xiphos is giving me a strange warning[0], and I'm not quite sure what to
> >> make of it.
> >
> > Currently "C" is set as the default language setting (locale)
> > for that specific program. It cannot handle it and probably
> > won't (as indicated) translate things properly. "C" is the
> > typical fallback locale.
>
> Really? Seems a bit odd.
No, it's just the most "simple" setting. :-)
It is what e. g. functions listed in "man 3 ctype" will refer to.
> > See the settings of $LANG and the $LC_* variables. There is
> > a specific precedence in their evaluation!
>
> Ah, I will have to read up on those, for future reference.
>From "man csh":
When using the system's NLS, the setlocale(3) function is called to
determine appropriate character code/classification and sorting (e.g.,
a 'en_CA.UTF-8' would yield "UTF-8" as a character code). This func-
tion typically examines the LANG and LC_CTYPE environment variables;
refer to the system documentation for further details. When not using
the system's NLS, the shell simulates it by assuming that the ISO
8859-1 character set is used whenever either of the LANG and LC_CTYPE
variables are set, regardless of their values. Sorting is not affected
for the simulated NLS.
You can find the meaning of the $LC_* variables in "man 3 setlocale"
for reference. They allow a fine grained specification of what should
be dealt with "in which language", while $LANG is easier to use for
"one size fits all" requirements.
> >> Should I just re-compile now that I've explicitly set things?
> >
> > Why? Language settings are evaluated at runtime, no need to
> > compile anything. As you have made the change to login.conf
> > (at the global level), make sure your user account doesn't
> > override anything. Also check if you need to run cap_mkdb
> > to create login.conf.db from your settings.
>
> I already ran it, I just need to logout/in after LibreOffice is done
> compiling.
You can temporarily call a program with a different setting
to see what language it "runs" in:
$ LC_ALL=de_DE.ISO8859-1 /usr/local/bin/mc
$ LC_ALL=pl_PL.ISO8859-2 /usr/local/bin/mc
$ LC_ALL=en_US.ISO8859-1 /usr/local/bin/mc
This will of course only work for _that_ specific program call
and will not persist. Using UTF-8 instead of one of the ISO
encodings could lead to "screen & character garbage". :-)
> > Alternatively (usually not recommended, but works) you can
> > set (i. e. setenv) language variables in /etc/csh.cshrc
> > globally, or ~/.cshrc for your user account.
> >
> > Example:
> >
> > setenv LC_ALL en_US.ISO8859-1
> > setenv LC_MESSAGES en_US.ISO8859-1
> > setenv LC_COLLATE de_DE.ISO8859-1
> > setenv LC_CTYPE de_DE.ISO8859-1
> > setenv LC_MONETARY de_DE.ISO8859-1
> > setenv LC_NUMERIC de_DE.ISO8859-1
> > setenv LC_TIME de_DE.ISO8859-1
> > unsetenv LANG
> >
> > That will leave english text intact (most usable language
> > setting for most programs), but allow specific settings like
> > time notation or collation according to the german rules.
>
> Will keep that in mind for future reference. I'm going to be learning
> one or two new languages soon and that will be helpful when I go to set
> up a new user to practice reading (and not just talking) those languages. (:
I went with the above approach to have all my programs "talk"
in english because they are easier to understand than the only
partially done and sloppy german translations. :-)
--
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...
More information about the freebsd-questions
mailing list