This means that for numeric configuration decimal are expressed with commas instead of the dot. I want to change that because many programs complain about that, but mantaining language in spanish. Please tell me how to do it.

to set just the numeric and monetary values, you can change the environment variables for LC_NUMERIC and LC_MONETARY to be en_US.UTF-8. This would change them so that the decimal places are dots, and the field separator is a comma.

It still exists when using the xdm login. The script Xsession
(/etc/X11/xdm/Xsession) is used to start the user environment. This also means
it may include the /etc/profile script as well.

As far as I know, the /etc/X11/prefdm script is the last remaining shell
script for starting the GUI.

What I don't know is whether gdm/kdm will pass on any environment
configured. gdm/kdm are used to start the X server and the login
window. As such, it sets/creates the access keys. Second, after login
completes, the X server is restarted (or should be IMO, this prevents
information leaks from the privileged environment of gdm to the
non-privileged user environment) and the user window manager started.

It is this last step that has become opaque in that the steps done are
now invisible within the gdm/kdm applications.

NOTE: the prefdm script itself includes the definitions from /etc/sysconfig/i18n.

This would lead me to believe that IF the definitions are put in
/etc/sysconfig/i18n that they COULD become global. The file is just
a shell script that contains definitions for use.

/etc/sysconfig/i18n is loaded in the /etc/profile.d/lang.csh and /etc/profile/lang.sh files. However that doesn't mean that is the only place that it is loaded from other than the /etc/X11/prefdm script you mentioned above.

I may do some experimenting around and try setting some environment variables in /etc/profile.d and /etc/X11/prefdm to see if they are carried over into X or not.

Thanks for the numerous answers, I will give an answer to each, the problem is parcially solved but not completely as you will see from my answers (in order of publication date)

#1, DBelton(1)
-----------------

Quote:

setenv LC_MONETARY en_US.UTF-8
setenv LC_NUMERIC en_US.UTF-8

I can not modify the locale variables that way. "setenv" is not a command avaible (at least for me).

#2 gthill
---------

Quote:

use
locale -a

to list the locales available on your system.

Already done this, already knew the command to list the locale variables. This not change them. Thank you anyway.

#3 jpollard
------------

Quote:

I think all you have to do is:

LC_NUMERIC="en_US.utf8"
export LC_NUMERIC

The most usefull answer till now, although a bit incomplete. When I type in a shell:

Code:

LC_NUMERIC="en_US.utf8"
export LC_NUMERIC

I can then run applications that need decimal division as point instead commas, meaning I really get to change the LC_NUMERIC variable. THE PROBLEM IS THAT THIS CHANGE IS NOT PERMANT! AND AFFECTS ONLY THE SHELL WHERE I MODIFIED THE LOCALE VARIABLE.
Meaning, If I I have to do it again IF I OPEN OTHER SHELL.

OTHER PROBLEM IS THAT IT ONLY AFFECT THE CURRENT SHELL!!!!!!:
meaning that if instead of running the app by typing the name in the shell +enter, I choose to run it by double clicking the name in the file browser, then IT DOES NOT WORK! It complains again about the numeric local variable.
Please if you do not understand this problem, write to me, but I assure you this a annoying problem (I can not launch the application by double clicking, I can not make a launcher).

# 4 DBelton (2)
--------------------------

Quote:

would adding that to /etc/profile.d in script files be enough to make it seen in under X?

for example:

The file /etc/profile.d/custum.sh does not exists, instead the most interesting file in that directory is lang.sh:

Most GUI do not startup with the shell - they start from gdm/kdm
which I believe do a fork/exec of the window manager..

Ok, I agree, but then what to do???

# DBelton (3)
--------------------

HTML Code:

I would think that the environment set in the /etc/profile and /etc/profile.d/* would be in effect in the shell that X is started from and still set.
Is there some place that specifically sets the environment for X?

That is what I am talking about, not only affecting shells, but also the X also. For one time and for all times modify LC_NUMERIC for allways.

and the /etc/profile.d/custom.sh and custom.csh files I mentioned above were NEW files, not editing existing files. However you could accomplish the same thing I mentioned above by adding those lines to the end of lang.sh and lang.csh. All of the *.sh and *.csh files in /etc/profile.d get run when you open a shell.