[Rd] Internationalization questions
John Fox
jfox at mcmaster.ca
Mon Aug 22 14:32:44 CEST 2005
Dear Brian,
> -----Original Message-----
> From: Prof Brian Ripley [mailto:ripley at stats.ox.ac.uk]
> Sent: 22 août 2005 01:47
> To: John Fox
> Cc: r-devel at stat.math.ethz.ch
> Subject: Re: [Rd] Internationalization questions
>
> On Sun, 21 Aug 2005, John Fox wrote:
>
> > Dear R-devel list members:
> >
> > I have two internationalization questions, related to
> questions that I
> > posed previously. These pertain to Windows (I've tried under Win XP
> > but assume the issue is more general) and R 2.1.1 patched
> and 2.2.0 devel.
> >
> > (1) I've noticed that the standard Windows dialogs in R -- whether
> > initiated from the Rgui menus, from winDialog(), or from tcltk
> > functions such as
> > tkmessageBox() -- do not have button labels translated when
> running in
> > a non-English locale. For example, when running in a French locale,
> > the command
> >
> > winDialog(type="yesnocancel", message=gettext("Save workspace
> > image?",
> > domain="RGui"))
> >
> > produces a dialog box with the message translated to
> "Sauver une image
> > de la session?", but the buttons still read "Yes", "No",
> and "Cancel".
> >
> > Is this the intended behaviour? Is there any way to get the button
> > text translated? I've implemented a partial solution that uses a
> > substitute for tkmessageBox(), but it is a bit awkward.
>
> You need to have Windows set to be in French dialogs, not
> just the locale set to French. This is on the second page of
> the Regional settings doalogs in WinXP. It is intended, as
> it makes all Windows dialogs work consistently. (You can
> have different settings on the three pages, but not all
> combinations work successfully -- the current rw-FAQ has some
> comments.)
>
On my XP system, the tabs are (in order) Regional Options, Languages, and
Advanced. I have now set all three to "French (Canada)" -- including in the
subdialog produced by the Details button under Languages, and rebooted. I
still get English button labels.
I've just read over the rw-FAQ from R 2.2.0 devel, but will read it more
carefully.
I guess that I'm willing to accept that Windows users who use languages
other than English know how to set up their systems properly.
> > (2) I'm still looking for a reliable way to determine whether R is
> > using English. Currently, I have the function
> >
> > English <- function() {
> > env <- Sys.getenv()
> > names(env) <- toupper(names(env))
> > LANG <- env["LANGUAGE"]
> > LC_CTYPE <- Sys.getlocale("LC_CTYPE")
> > if (!is.na(LANG)) length(grep("^en", LANG, ignore.case=TRUE)) > 0
> > else LC_CTYPE == "C" || length(grep("^en", LC_CTYPE,
> > ignore.case=TRUE))
> >> 0
> > }
> >
> >
> > (adapting and extending a suggestion by Simon Urbanek) which checks
> > not just the locale but also for an environment variable named
> > LANGUAGE. Is this sufficient?
>
> Using English for what? (See my comments above.) For
> messages, yes, it
> covers all the quirks we know about in the major OSes.
>
Checking for English messages is sufficient for my purposes.
Thanks for your help,
John
> Brian
More information about the R-devel
mailing list