[Rd] Internationalization questions

From: John Fox <jfox_at_mcmaster.ca>
Date: Mon 22 Aug 2005 - 01:00:09 GMT


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

R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Mon Aug 22 11:04:39 2005

This archive was generated by hypermail 2.1.8 : Mon 20 Feb 2006 - 03:21:16 GMT