[R] help with gettext() for translating text

Daniel Kelley Dan.Kelley at Dal.Ca
Sat Feb 22 00:54:47 CET 2014


Thanks.  This helped greatly.  I’m sorry about sending the html message, and hope this one is plain-text.  Dan.

On Feb 21, 2014, at 7:00 AM, Prof Brian Ripley <ripley at stats.ox.ac.uk> wrote:

> On 21/02/2014 10:40, Daniel Kelley wrote:
>> I’m wondering whether anyone can help me with a translation exercise.  I have a package named “oce”, which does oceanographic processing, and I’d like to make it produce graphs with labels that work in different languages.  For example, in English I write “Depth” and in Spanish I’d like to write “Profundidad”.
>> 
>> In my “po” directory I have R-oce.pot and es.po.  As a first step, I’ve translated just the phrases “Depth (m)” and “Depth [m]”.  Then I build and installed my package.  Within R,
>> 
>> library(oce)
>> bindtextdomain("R-oce”)
> 
> I don't think you know what that does.  And do not post HTML (see the posting guide): you have ended up with an invalid directional quote in there.
> 
>> yields
>> 
>>  [1] "/Library/Frameworks/R.framework/Versions/3.0/Resources/library/oce/po”
>> 
>> and then, in the OSX shell,
>> 
>> msgunfmt /Library/Frameworks/R.framework/Versions/3.0/Resources/library/oce/po/es/LC_MESSAGES/R-oce.mo | grep -1 Depth
>> 
>> yields
>> msgid "Depth (m)"
>> msgstr "Profundidad (m)"
>> --
>> --
>> msgid "Depth [m]"
>> msgstr "Profundidad [m]”
>> 
>> so it seems that I have successfully installed the translations.  Then, I run R from the shell with
>> 
>> LC_MESSAGES=es_ES.UTF-8 R --no-save < spanish.R
>> 
>> where spanish.R consists of
>> 
>> library(oce)
>> cat(gettext("Depth (m)"), "\n")
> 
> Read the help:
> 
>     If ‘domain’ is ‘NULL’ or ‘""’, a domain is searched for based on
>     the namespace which contains the function calling ‘gettext’ or
>     ‘ngettext’.
> 
> You are not calling this from a namespace and so need to specify the domain rather than the default of NULL.
> 
> Example
> 
> gettext("empty model supplied")
> 
> > gettext("empty model supplied")
> [1] "empty model supplied"
> > Sys.setenv(LANGUAGE="fr")
> > gettext("empty model supplied")
> [1] "empty model supplied"
> > gettext("empty model supplied", domain = "R-stats")
> [1] "modèle fourni vide"
> 
>> and I get
>> 
>> ...
>> R es un software libre y viene sin GARANTIA ALGUNA.
>> ...
>> 
>> (i.e. a Spanish introduction paragraph from R) which suggests that my env-variable is OK, followed by
>> 
>>> library(oce)
>> Loading required package: mapproj
>> Loading required package: maps
>>> cat(gettext("Depth (m)"), "\n")
>> Depth (m)
>> 
>> which, obviously, has not translated the text.  A similar test with
>> 
>> LANG=es_ES.UTF-8 R --no-save < spanish.R
>> 
>> yields the same results.
>> 
>> All of this is with R 3.0.2 on an Apple OSX platform (Mavericks); session info is below.
>> 
>>> sessionInfo()
>> R version 3.0.2 (2013-09-25)
>> Platform: x86_64-apple-darwin10.8.0 (64-bit)
>> locale:
>> [1] es_ES.UTF-8/es_ES.UTF-8/es_ES.UTF-8/C/es_ES.UTF-8/es_ES.UTF-8
>> attached base packages:
>> [1] stats     graphics  grDevices utils     datasets  methods   base
>> other attached packages:
>> [1] oce_0.9-14    mapproj_1.2-1 maps_2.3-2
>> 
>> 
>> QUESTION: any hints on how I can get the translations to be passed through gettext()?
>> 
>> Thanks!
>> 
>> 
>> Dan E. Kelley, Professor  and Graduate Coordinator
>> Oceanography Department, Dalhousie University
>> PO BOX 15000
>> Halifax, NS B3H 4R2
>> phone:(902)494-1694 fax:(…)-3877 Dan.Kelley at Dal.CA<mailto:Dan.Kelley at Dal.CA>
>> http://oceanography.dal.ca/person/Kelley_Dan.html
>> http://graduatecoordinator.oceanography.dal.ca/
>> 
>> 
>> 	[[alternative HTML version deleted]]
>> 
>> 
>> 
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>> 
> 
> 
> -- 
> Brian D. Ripley,                  ripley at stats.ox.ac.uk
> Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
> University of Oxford,             Tel:  +44 1865 272861 (self)
> 1 South Parks Road,                     +44 1865 272866 (PA)
> Oxford OX1 3TG, UK                Fax:  +44 1865 272595




More information about the R-help mailing list