"Default" implies that there are other, higher-priority settings which locale
respects first.
The locale is not read directly from /etc/default – it is only read from environment variables $LC_MESSAGES
and such, while the file you're editing is only used to set up those environment variables at login time. What you see in env|grep ^LC
is more or less what will be printed by locale
.
Usually the file is read very early during the login process (via PAM), so the resulting environment variables can be overridden from various other sources. For example, you might've set LC_MESSAGES manually, or your ~/.bashrc or ~/.profile may be export
ing different values, or you logged in through GNOME and it retrieved the per-user settings from GSettings1. For SSH connections, if the client has "SendEnv" enabled, it might be sending the client-side $LC_*
variables to the server which will override whatever PAM has set up.
Finally, if the $LC_ALL
environment variable happens to be set (regardless of where it comes from), it will have priority over all other $LC_*
settings.
1 dconf-editor org.gnome.system.locale