[R-SIG-Mac] Wrong locale when using R from shell

Erich Studerus erich.studerus at bli.uzh.ch
Tue Mar 23 01:38:54 CET 2010


Thank you very much! Replacing "R" with "LANG=de_CH.UTF-8 R" in the Lyx 
preference file indeed solved my problem.

On Mon, 22 Mar 2010 19:15:51 -0400
  Simon Urbanek <simon.urbanek at r-project.org> wrote:
> 
> On Mar 22, 2010, at 6:06 PM, Erich Studerus wrote:
> 
>> I typed "export" into the mac terminal to see the setup of my system 
>>variables. Under language I get LANG="de_CH.UTF-8". So it seems my system 
>>variable for language is set up correctly.
>> 
> 
> Nope ;). I assume you're looking in Terminal which sets the LANG variable 
>according to its preferences - it is NOT set by the shell.
> 
> 
>> It doesn't make sense that Lyx would force C locale, although I don't know 
>>where I can check this. I'm using the regular Lyx/Sweave setup described 
>>here:
>> http://wiki.lyx.org/LyX/LyxWithRThroughSweave
>> 
>> I dont have this locale problem on my Windows 7 computer. I don't 
>>understand, why R can dectect the correct locale when started from the 
>>terminal or as R.app but not from the shell. How do these running modes 
>>differently look up environmental variables?
>> 
> 
> Both of them set LANG explicitly - it's that easy. Apparently LyX doesn't. 
>Again, you're barking up the wrong tree - it's not R's fault since R gives 
>you what you ask for - namely the C locale. If LyX uses a shell to run R, 
>it should be as easy as replacing "R" with "LANG=en_US.UTF-8 R" or 
>whichever you prefer. I don't use LyX so I don't know what where exactly 
>you have to change it. Note that the locale is NOT changed in the 
>system-wide startup scripts (by default).
> 
> Cheers,
> Simon
> 
> 
> 
> 
> 
>> Regards,
>> Erich
>> 
>> On Mon, 22 Mar 2010 17:09:21 -0400
>> Simon Urbanek <simon.urbanek at r-project.org> wrote:
>>> On Mar 22, 2010, at 16:32 , Erich Studerus wrote:
>>>> Hello
>>>> 
>>>> I'm using Lyx with Sweave on Mac OS X 10.5.8 with R version 2.10.1.  When 
>>>>I compile Lyx documents, R is called from shell to process R  code chunks 
>>>>contained in the Lyx document. Unfortunately, R does not  automatically 
>>>>detect the correct locale when called from shell. I  figured out that R 
>>>>uses the C locale in shell mode by embedding the  following code in Lyx
>>>> 
>>>> <<echo=F>>=
>>>> sys.getlocale()
>>>> @
>>>> 
>>>> When I start R from the terminal and also in the R.app I get the  correct 
>>>>locale:
>>>> de_CH.UTF-8/de_CH.UTF-8/C/C/de_CH.UTF-8/de_UTF-8
>>>> 
>>>> How I can I get the correct locale when calling R from shell?
>>>> 
>>> Setup your environment accordingly? This has nothing to do with R but your 
>>>environment (LANG, LANGUAGE, LC_xxx) - which is what determines  the 
>>>locale. The default locale settings are system-dependent, so  either your 
>>>system default locale is C or Lyx forces C locale for the  shell it starts. 
>>>For details on locale specifications see, e.g.:
>>> http://www.gnu.org/software/hello/manual/gettext/Locale-Environment-Variables.html#Locale-Environment-Variables
>>> http://opengroup.org/onlinepubs/007908799/xbd/envvar.html
>>> Cheers,
>>> Simon
>>> 
>> 
>> _______________________________________________
>> R-SIG-Mac mailing list
>> R-SIG-Mac at stat.math.ethz.ch
>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>> 
>> 
>



More information about the R-SIG-Mac mailing list