[PC-BSD Dev] pcbsd, pcdm locale and language settings

Joe Maloney jpm820 at gmail.com
Mon Dec 2 13:56:03 PST 2013


Just grabbed the source from github, compiled, and installed.  I can 
also confirm that this fixes language switching.  :)

Joe Maloney

On 12/02/2013 15:32, Ken Moore wrote:
> Fixed!
> I found a bug in how the GUI was setting the localization when you 
> change it (so the setting was not properly being passed to the user 
> login process). This is now tested/fixed, and I did not need to modify 
> any of the system files (which is good).
>
> [1] 
> https://github.com/pcbsd/pcbsd/commit/41d9f849285164997ae259cdf100ca703e343f7b
>
> I am working on the last step (making sure that the desired system 
> locale gets saved to disk and re-loaded next time PCDM starts up) 
> right now. I should have this done here soon.
>
>
> On 12/02/13 16:01, Joe Maloney wrote:
>> I tested with fluxbox also and the language stayed the same. However 
>> I never tested with fluxbox after starting pcdm interactively rather 
>> than letting the system start pcdm.  I will give that a try also when 
>> I get a chance.
>>
>> As far as I can tell when gdm is used gdm 2/3 itself doesn't modify 
>> .profile but it creates a .dmrc for gnome2 and for gnome3 it would 
>> use accountsservice.  From what I was reading kdm also uses the .dmrc 
>> method or at least it used to.  Gdm3 uses accountsservice and will 
>> set /var/db/AccountService/users/jmaloney to set langauge per a 
>> user.  That file would also be used to set account pictures.  I think 
>> lightdm also uses accountsservice but I'm still researching.
>>
>> I think the way you were trying to do it by setting the variable made 
>> the most sense however.  Rather than touching .profile, etc.  I know 
>> at least gdm2/3 doesn't have to to have that so there must be some 
>> way.  Although if there gdm 2/3 will respect those methods for 
>> setting locale.  I'm still looking into how each of these works 
>> exactly though.  I hope I can dig up some kind of an answer soon.
>>
>> Joe Maloney
>>
>> On 12/02/2013 13:54, Ken Moore wrote:
>>> PCDM is (currently) just setting the "LANG" and "LC_ALL" environment 
>>> variables appropriately before starting up the selected DE. It is 
>>> possible that the DE itself is loading the /etc/profile or 
>>> /etc/login.conf (which PCDM just ignores at the moment), overwriting 
>>> the variables that PCDM setup for you. I am testing with Fluxbox 
>>> here (which is rather minimalist and does not have much if any 
>>> localization for the UI), and the environment variables are being 
>>> set properly by PCDM. So it might be something specific to the "big" 
>>> DE's that is causing the issue.
>>>
>>> It is sounding more and more that I am going to have to make PCDM 
>>> modify the system files (/etc/profile, /etc/login.conf, ~/.profile) 
>>> whenever the user changes the localization. I am going to get this 
>>> setup here soon for you and see if that makes any difference.
>>>
>>>
>>> On 11/28/13 19:55, Joe Maloney wrote:
>>>> So I changed my shell to /bin/sh in root an manually started PCDM 
>>>> after setting LANG=.  At this point PCDM still showed up in english 
>>>> but when I logged into window managers such as mate they all came 
>>>> up in french.  I can see that PCDM was running prior to this as 
>>>> root in /bin/sh so I can’t see why it isn’t picking up /etc/profile 
>>>> and why that variable has to be passed interactively.  In addition 
>>>> just setting LC_ALL= in open box and launching mate-session also 
>>>> works.  Hope that provides a little more insight.  I will continue 
>>>> looking at the PCDM code a little more closely over the next couple 
>>>> of days if I get some more free time.
>>>>
>>>> Joe Maloney
>>>>
>>>>
>>>> On Nov 28, 2013, at 6:02 PM, Joe Maloney <jpm820 at gmail.com 
>>>> <mailto:jpm820 at gmail.com>> wrote:
>>>>
>>>>> I’ve tested with the new iso released last night.  Language 
>>>>> switching it still broken.  It does switch the language at the 
>>>>> PCDM menu but when you go to log in everything is still in english.
>>>>>
>>>>> I’ve done some more testing today with /etc/profile.  In fact I 
>>>>> found that for gdm3 I had to set /etc/profile to the language I 
>>>>> wanted or GDM would show up in english.  I was able to get command 
>>>>> line applications such as nano to show up in other languages as 
>>>>> well by modifying /etc/login.conf.  Setting up both of these files 
>>>>> unfortunately had no effect on PCDM.
>>>>>
>>>>> From what I was reading login.conf is the preferred systemwide 
>>>>> method on FreeBSD.  Use of profile is actually not recommend 
>>>>> because it is specific to certain shells.  Interestingly enough 
>>>>> however GDM3 language switching does not work without setting 
>>>>> /etc/profile.
>>>>>
>>>>> I’m unfortunatley not very fluent in qt4 yet so it’s a little 
>>>>> tough for me to see what pcdm is actually trying to do when 
>>>>> loading a window manager.  From what I can tell however it looks 
>>>>> like maybe this pcdmxprocess is just setting an environment 
>>>>> variable when launching the selected window manager?  Is it 
>>>>> possible that maybe whatever shell it is launching with is not 
>>>>> loading that variable?  Or is it maybe something that defining 
>>>>> what shell to load that variable in might fix?  I’m also wondering 
>>>>> if there is a way I can pass a command that pcdm would use for 
>>>>> launching a windows manager manually using say xinit for testing?
>>>>>
>>>>> Joe Maloney
>>>>>
>>>>>
>>>>> On Nov 18, 2013, at 8:18 AM, Ken Moore <ken at pcbsd.org 
>>>>> <mailto:ken at pcbsd.org>> wrote:
>>>>>
>>>>>> On 11/17/13 15:32, Joe Maloney wrote:
>>>>>>> I’ve been working off and on with a user who is french who has 
>>>>>>> been testing my gnome3 packages for some time.  I was able in 
>>>>>>> the past to resolve his language settings not sticking with gdm3 
>>>>>>> by having the freebsd gnome team patch accountsservice which you 
>>>>>>> guys will probably necessarily need to use i wouldn’t think as 
>>>>>>> it’s more of a gdm3 specific requirement.  However I was trying 
>>>>>>> to look into how I could solve this for a couple of reasons.  I 
>>>>>>> find this to be a very interesting problem.  The second reason 
>>>>>>> would be so that nothing holds back PCDM from going into 10 for 
>>>>>>> sure if I can be of any help.  :)
>>>>>>>
>>>>>>> I was chatting with the freebsd gnome team today about how gdm2 
>>>>>>> might set locales etc or possible workarounds which I also read 
>>>>>>> about in the FreeBSD handbook.  One was modifying /etc/profile 
>>>>>>> systemwide and ~/profile for each user.  These solutions work 
>>>>>>> for both gdm2, and gdm3.  Here are some examples I was given 
>>>>>>> that also worked for me.
>>>>>>>
>>>>>>> /etc/profile http://pastebin.com/VYVwymzm
>>>>>>> ~/.profile http://pastebin.com/TG2wZeNJ
>>>>>>>
>>>>>>> With these enabled gdm2 will also select that language shown in 
>>>>>>> the profile as the default.  After logging into xfce it respects 
>>>>>>> the change as well.  So that would be one way.  However if I 
>>>>>>> start xfce through PCDM it does not respect the change. 
>>>>>>>  Runnning xfce standalone does also not respect the change. 
>>>>>>>  Which leads me to believe gdm is also applying a change in some 
>>>>>>> other file or just on the fly to desktops such as xfce.  So I do 
>>>>>>> think the answer might be finding out how gdm 2 is doing it. 
>>>>>>>  However I’m guessing it must be done on the fly as switching 
>>>>>>> from GDM back to PCDM everything goes back to english regardless 
>>>>>>> of what I set profile and .profile to contain.
>>>>>>>
>>>>>>> I can see after further research that the problem is obviously 
>>>>>>> much bigger than PCBSD.  Going to the FreeBSD website and 
>>>>>>> selecting french works ok.  But the minute I click download I 
>>>>>>> get an english page, and an iso that starts installing in 
>>>>>>> english with no clear way that I can see to set the language at 
>>>>>>> the beginning of the install.  So I would say that PCBSD is 
>>>>>>> ahead in this regard as the install process can be viewed in 
>>>>>>> many languages.  Truthfully I never realized much of this until now.
>>>>>>>
>>>>>>> However I’ve been looking further and I can see that there are 
>>>>>>> ways to set locale settings in even places such as rc.conf to 
>>>>>>> control console behavior.  So perhaps if there  were man pages 
>>>>>>> for every language in the base an installer could be written for 
>>>>>>> freebsd as well to automate all of that stuff and just have it 
>>>>>>> available right from the console as well.  So if a user were to 
>>>>>>> type man ping it would display in that language etc out of box.
>>>>>>>
>>>>>>> I will write in more if I can find a fix for PCDM.  I just 
>>>>>>> wanted to relay some of this conversation I had with freebsd 
>>>>>>> gnome earlier in case any of it would provide any insight into 
>>>>>>> fixing the problem.
>>>>>>>
>>>>>>> Joe Maloney
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Dev mailing list
>>>>>>> Dev at lists.pcbsd.org
>>>>>>> http://lists.pcbsd.org/mailman/listinfo/dev
>>>>>>
>>>>>> Thanks for the info!
>>>>>> I looked through the "profile" files that you linked to and it 
>>>>>> looks like the only difference is the "LC_ALL" environment 
>>>>>> variable. PCDM already formats/sets the LANG environment variable 
>>>>>> (default: en_US.UTF-8), but we did find/fix some localization 
>>>>>> bugs in the source within the last couple weeks, so perhaps that 
>>>>>> will fix the issues for you. I also just added the LC_ALL 
>>>>>> environment variable to PCDM a moment ago[1], so between these 
>>>>>> changes PCDM should be matching exactly what you reported that 
>>>>>> GDM was doing.
>>>>>>
>>>>>> The only difference is that I do not have PCDM running the 
>>>>>> "~/.profile" file when starting up a user session at the moment. 
>>>>>> This is because of the concern that setting the locale in the 
>>>>>> login manager will not get propagated to the user session 
>>>>>> appropriately if there is a "default" profile setup for users on 
>>>>>> the system. I think the ".profile" file is important if you are 
>>>>>> doing a remote/CLI login on the system, so perhaps I should setup 
>>>>>> PCDM to auto-modify the LANG/LC_ALL variables in that user's file 
>>>>>> when you login. My only concern with this is that I will be 
>>>>>> modifying a user-preference file (which I am very hesitant to do 
>>>>>> - since I would hate to ruin someone's specially configured files).
>>>>>>
>>>>>> [1] 
>>>>>> https://github.com/pcbsd/pcbsd/commit/269e8eea83bda065804e5f86353be1d62726e638
>>>>>> -- 
>>>>>> ~~ Ken Moore ~~
>>>>>> PC-BSD/iXsystems
>>>>>> _______________________________________________
>>>>>> Dev mailing list
>>>>>> Dev at lists.pcbsd.org <mailto:Dev at lists.pcbsd.org>
>>>>>> http://lists.pcbsd.org/mailman/listinfo/dev
>>>>>
>>>>
>>>
>>>
>>> -- 
>>> ~~ Ken Moore ~~
>>> PC-BSD/iXsystems
>>
>
>
> -- 
> ~~ Ken Moore ~~
> PC-BSD/iXsystems

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pcbsd.org/pipermail/dev/attachments/20131202/a2328d86/attachment-0001.html>


More information about the Dev mailing list