For sure you have already read the write ups at
http://developer.r-project.org/Translations.html as well as the
corresponding sections in "Writing R Extesnsions"? There is also an
article in the recent R News.
I have tried out a toy example some time before the docs were that
complete (February-March?), and it already worked very well. Rcmdr is a
much bigger task, of course!
Peters point ("Accept/Break/Cancel" translates to
"Accepter/Afbryd/Annuller") is a very important one. A similar problem
with translations of RGui broke my workarounds for RWinEdt....
Uwe
Peter Dalgaard wrote:
"John Fox" <[EMAIL PROTECTED]> writes:
Dear R-devel list members,
I'm considering adding support for other languages than English to the Rcmdr
package. I understand that the use of Tcl/Tk by the Rcmdr package means I
won't be able to make full use of the internationalization facilities in R
2.1.0. I'm interested, therefore, in whether the following, more limited,
strategy (which bears some similarity to the internationalization facilities
in R) seems reasonable or whether there's a better approach. As well, I'm
interested in whether the proposed approach is sufficiently flexible to be
worthwhile -- does it cover enough languages?
It would be simple for me to provide a file of messages, labels, and other
text used by the Rcmdr, organizing this file with one message per line. A
copy of the file, named, e.g., messages.francais, could contain translations
into another language (e.g, French). Setting
options(Rcmdr=list(language=francais)) would then activate translation when
the Rcmdr starts up, reading the messages file into a data frame, treating
the English text as row names. The messages could be handled by a function,
say Text(), which would return English or translated text, as appropriate.
Some experimentation shows that message retrieval by this scheme is
essentially instantaneous even when there are several thousand relatively
long messages in the data frame.
Offhand, I think you're better off latching on to an existing
mechanism. Tcl has something known as "msgcat", which appears to be
similar to GNU gettext (and there are conversion tools), or perhaps
you could interface to gettext itself (we do have the gettext()
function at the R level).
Two tricky bits:
(A) shortcut keys, which need to be coordinated to menu items
("Accept/Break/Cancel" translates to "Accepter/Afbryd/Annuller" in
Danish - if you're a little malicious, anyway)
(B) What is the general mechanism for extending message catalogs by an
R package?
Brian may well have thought of this stuff already.
______________________________________________
R-devel@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel