[Rd] Internationalization questions

John Fox jfox at mcmaster.ca
Mon Aug 22 03:00:09 CEST 2005


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.

(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?

Any help would be appreciated.

John


--------------------------------
John Fox
Department of Sociology
McMaster University
Hamilton, Ontario
Canada L8S 4M4
905-525-9140x23604
http://socserv.mcmaster.ca/jfox



More information about the R-devel mailing list