[R-SIG-Mac] R.app stange behavior?
Simon Urbanek
simon.urbanek at r-project.org
Sat Dec 29 20:34:19 CET 2007
On Dec 29, 2007, at 2:04 PM, Philippe Grosjean wrote:
> Simon and Brian,
>
> Sorry, I forgot to tell about my system:
>
> > version
> _
> platform i386-apple-darwin8.10.1
> arch i386
> os darwin8.10.1
> system i386, darwin8.10.1
> status
> major 2
> minor 6.1
> year 2007
> month 11
> day 26
> svn rev 43537
> language R
> version.string R version 2.6.1 (2007-11-26)
>
> > sessionInfo()
> R version 2.6.1 (2007-11-26)
> i386-apple-darwin8.10.1
>
> locale:
> C
>
> attached base packages:
> [1] stats graphics grDevices utils datasets methods base
>
> > Sys.getenv("R_GUI_APP_VERSION")
> R_GUI_APP_VERSION
> "1.22"
>
> > l10n_info()
> $MBCS
> [1] FALSE
>
> $`UTF-8`
> [1] FALSE
>
> $`Latin-1`
> [1] FALSE
>
> I switch to French in the system preferences.
What is your format setting? It must be French too and I suspect that
it's not. If it's not then you need to override the locale, because
there is not such thing as french locale with non-french formats. See
FAQ section 9, in that (rather unusual case) you need to use something
like
defaults write org.R-project.R force.LANG fr_FR.UTF-8
> R is restarted after this. Menus are in French. To get messages in
> French in the Console, I need to enter Sys.setenv(LANG = "fr")...
That is a really bad thing to do, because it uses the wrong locale
that is not supported by the GUI. Again, the preferred way is to set
the system preferences correctly.
> Even changing this variable in a terminal before starting R does
> nothing better. I am a little bit lost...
For command-line R use the proper one:
LANG=fr_FR.UTF-8 R
and that work just fine for me (you can use non-UTF-8, but make sure
you have the right terminal then).
Cheers,
Simon
>
> Simon Urbanek wrote:
>> Philippe,
>> On Dec 29, 2007, at 7:17 AM, Philippe Grosjean wrote:
>>> I have a couple of questions regarding the way R.app works:
>>>
>>> 1) R.app forces \n at the end of output:
>>>
>>>> cat("some text")
>>> some text
>>>>
>>>
>>> While on any other R console I have tested (including R in a
>>> terminal on a Mac), it is not the case:
>>>> cat("some text")
>>> some text>
>>>
>> Although your tests are right, your explanation is not. The GUI
>> doesn't force \n in general, try:
>> > cat("foo"); cat("bar")
>> foobar
>> All it does is to make sure that a prompt is printed on a new line
>> (to avoid prompt printed in the middle of some output). It does not
>> affect output in functions, scripts etc. (hence I think the
>> following is irrelevant).
>>> This is a problem for two reasons: (1) Mac users may forgot to add
>>> \n when using cat() and it would produce weird results elsewhere,
>>> and (2) it is sometimes useful to be able to write something
>>> before the prompt, or to write text without \n (see progress() in
>>> svMisc package, for an example of use)
>>>
>>>
>>> 2) R.app does not interpret \a and \b. \a should output a sound
>>> ('bip') and is used in alarm() function that does not work in
>>> R.app, and \b is backspace and is supposed to erase previous
>>> character. Consequently:
>>>
>>>> cat("abc\bd\n")
>>> abcd
>>>>
>>>
>>> which is wrong, or at least, different from the behavior on all
>>> other R consoles I have used which gives:
>>>
>>>> cat("abc\bd\n")
>>> abd
>>>>
>>>
>> The interpretation of all those codes is terminal-specific and for
>> now the R.app chooses to not interpret them (however, they are
>> preserved, try pasting the output in a terminal that interprets
>> them).
>> As a side note, one specific issue is that of \r which seems to be
>> handy at times to report progress (although not portably).
>> Historically, Macs used \r to denote end of line in files and
>> input, therefore we have to interpret it as what you would expect
>> from \n for compatibility. With \r\n as the Windows end of line
>> sequence being also treated as \n for compatibility this explains
>> the current behavior in the GUI. ("\r", "\n", "\r\n" are
>> equivalent, "\r\r" and "\n\r" ares equivalent to "\n\n").
>> We may change the behavior in the future as the compatibility may
>> not be as important anymore. As of the other codes, I'm not quite
>> sure it's worth the hassle, but it could be done.
>>> 3) Despite reading Mac-FAQ, I cannot figure out how to print French
>>> messages correctly. I got something like:
>>>
>>>> nonexistingvar
>>> Erreur : objet "nonexistingvar" non trouv'e
>>>>
>>>
>>> This is the same on the terminal. Under Windows (RGui), I got:
>>>
>>>> nonexistingvar
>>> Erreur : objet "nonexistingvar" non trouvé
>>>>
>>>
>>> How can I fix this? (I am the maintainer of R French translation,
>>> and it uses 'charset=ISO-8859-1').
>>>
>> You'll have to tell us more about your settings - at least
>> sessionInfo(), possibly Sys.getenv("R_GUI_APP_VERSION") and any
>> other changes you made to your preferences manually. After
>> selecting French language and French settings in the system
>> preferences, I get correctly:
>> > nonexistingvar
>> Erreur : objet "nonexistingvar" non trouvé
>> locale:
>> fr_FR.UTF-8/fr_FR.UTF-8/fr_FR.UTF-8/C/fr_FR.UTF-8/fr_FR.UTF-8
>> Cheers,
>> Simon
>
>
More information about the R-SIG-Mac
mailing list