Now that I’m working with the latest release of Mac OS X (10.5, aka Leopard), I again face the problem of the french localization of the R software. It should be noted that I mainly use R in a simple console (the Terminal), rather than the GUI distributed with R. I must say, however, that this GUI is by far the most elegant I saw: Windows GUI is a disaster, and there is no GUI available for Linux; in both cases, one can use JGR or similar add-on software. But as I feel most comfortable with the command line, I decide to keep this option.
With my previous system, I have to set up a few parameters to get a correct localization. Indeed, I have to add the LANG
option, which was not defined on OS X 10.4, and I happen to load it in my .bash_profile
:
export TERM=xterm-color
export LANG=fr_FR.ISO8859-1
The Terminal has to be configured to accept western characters (Windows or Latin ISO-8859-1), and I configure this option although I was using iTerm instead of the Terminal application (which was lacking tabbing support). Furthermore, I have to define the DISPLAY
in order to get the X11 device working properly. Here is the code I was using:
# Set the DISPLAY variable -- works for Apple X11 with Fast User Switching
if [[ -z $DISPLAY && -z $SSH_CONNECTION ]]; then
disp_no=($( ps -awx | grep -F X11.app | awk '{print $NF}' | grep -e ":[0-9]" ))
if [[ -n $disp_no ]];then
export DISPLAY=${disp_no}.0
else
export DISPLAY=:0.0
fi
echo "DISPLAY has been set to $DISPLAY"
else
# we already are under X11 with xterm
PATH=/usr/texbin:/usr/local/bin:$PATH
export PATH
date
fi
Now, with OS X 10.5, the X server is launched at boot time, so we don’t need to use it anymore. However, we still have to work around the locale because the Terminal application defaults to UTF-8. This is done easily in the Preferences panel of the Terminal app. But, we also need to tell R to use french locales instead of the default UTF-8 ones:
> Sys.getlocale()
[1] "fr_FR.UTF-8/fr_FR.UTF-8/C/C/fr_FR.UTF-8/fr_FR.UTF-8"
> l10n_info()
$MBCS
[1] FALSE
$`UTF-8`
[1] TRUE
$`Latin-1`
[1] FALSE
This can be done with the Sys.setlocale()
function as explained in the R Installation and Administration manual. Finally, all get properly working after issuing these commands:
> Sys.setlocale(category = "LC_ALL", locale = "fr_FR.ISO8859-1")
> Sys.getlocale()
[1] "fr_FR.ISO8859-1/fr_FR.ISO8859-1/fr_FR.ISO8859-1/C/ fr_FR.ISO8859-1/fr_FR"
I can now import CSV files without any problem again.