From jfox at mcmaster.ca  Mon Aug 22 14:32:44 2005
From: jfox at mcmaster.ca (John Fox)
Date: Mon, 22 Aug 2005 08:32:44 -0400
Subject: [Rd] Internationalization questions
In-Reply-To: <Pine.LNX.4.61.0508220729430.31504@gannet.stats>
Message-ID: <20050822123244.VKJP27508.tomts16-srv.bellnexxia.net@JohnDesktop8300>

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



[Rd] Internationalization questions
John Fox