FS#30192 - [gnome] Locale in GNOME defaults to C with systemd

Attached to Project: Arch Linux
Opened by Lukas B (teateawhy) - Friday, 08 June 2012, 17:27 GMT
Last edited by Dave Reisner (falconindy) - Sunday, 10 June 2012, 23:43 GMT
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To Ionut Biru (wonder)
Architecture x86_64
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Description:
When moving from sysvinit to systemd, the locale in GNOME is not set correctly.
In my example locale is de_DE.
It is also happening with:
de_AT

Reason:

The file /var/lib/AccountsService/users/[username]

should contain:
[User]
Language=de_DE.UTF-8


Instead it contains:
[User]
Language=de_DE.utf8


Additional info:
package versions:
systemd 185-1
gnome-shell 3.4.1-3


Steps to reproduce:

Install GNOME and systemd.
Set your locale to something differing from C.
The UI elements will be in C locale, ignoring your settings.

Not reproducible with standard sysvinit, therefore filed against systemd.
Solved by writing the correct value [].UTF-8

Also see forum posts:
https://bbs.archlinux.org/viewtopic.php?id=139396
https://bbs.archlinux.de/viewtopic.php?id=21368

This task depends upon

Closed by  Dave Reisner (falconindy)
Sunday, 10 June 2012, 23:43 GMT
Reason for closing:  Upstream
Additional comments about closing:  Working as intended. pam_systemd doesn't currently add locale settings to user sessions. /etc/profile.d/locale.sh from initscripts or systemd-sysvcompat is required.
Comment by Dave Reisner (falconindy) - Saturday, 09 June 2012, 14:15 GMT
Is systemd-localed.service being spawned? Are you posting as "Hooch"? Does /etc/locale.conf exist with the correct data in it?
Comment by Lukas B (teateawhy) - Saturday, 09 June 2012, 17:09 GMT
A short update concerning the bugreport.
Writing the new value ..UTF.. to /var/lib/AccountsService/users/[username]
Does not solve the problem, the locale is still set to english.

Now to your questions:
1. systemctl list-units does not list systemd-localed.service anywhere.
2. Not sure who is Hooch.I am posting as teateawhy everywhere.
3. /etc/locale.conf
LANG=de_DE.UTF-8
LC_MESSAGES=C

I have been looking for systemd-localed.service in /usr/lib/systemd/system,
and it isn't there.

Some additional info:
In locale.gen i have uncommented the following entries:
...
de_DE.UTF-8 UTF-8
de_DE ISO-8859-1
de_DE@euro ISO-8859-1
...
en_GB.UTF-8 UTF-8
en_GB ISO-8859-1

Hope this helps.
Comment by Dave Reisner (falconindy) - Saturday, 09 June 2012, 17:22 GMT
That may be (part of) your problem... systemd-localed.service is part of systemd itself

http://sprunge.us/ASbP
Comment by Lukas B (teateawhy) - Sunday, 10 June 2012, 12:18 GMT
Today i found the service, but see what happens.
systemctl enable systemd-localed.service
Warning: unit files do not carry install information. No operation executed.
Comment by Rutgerr Howley (rootgerr) - Sunday, 10 June 2012, 22:57 GMT
First sorry for my bad English, if I understand correctly, I went through the same problem and it was resolved by the following way:

In my case I added:
LANG = pt_BR.utf8
To / etc / environment
Comment by Dave Reisner (falconindy) - Sunday, 10 June 2012, 23:04 GMT
Right. You can't enable systemd-localed.service because it's meant to be bus activated or explicitly started.

I think you original analysis of this program is only the symptom, and it probably warrants an upstream bug report. Some light testing reveals that de_DE.utf8 is entirely valid as a locale. If a program isn't respecting this, it's wrong.

/etc/locale.conf, as per upstream, does not currently affect user sessions. You're meant to use a file like /etc/profile.d/locale.sh which sets your locale on login. Does this file not exist for you?
Comment by Rutgerr Howley (rootgerr) - Sunday, 10 June 2012, 23:40 GMT
Well, if are you asking to me, no i do not have this one, i think i was fully certain about remove systemd-sysvcompat, I think that it removed the scripts.
Comment by Dave Reisner (falconindy) - Sunday, 10 June 2012, 23:42 GMT
Install either systemd-sysvcompat or initscripts, then. Until someone pushes patches upstream to add locale settings via pam_systemd, this is how locale is applied.

Loading...