On 05/02/13 00:02, Prof Brian Ripley wrote:
> On 04/02/2013 11:14, Florent Angly wrote:
>> Hi Brian,
>>
>> I appreciate your clarifications. I am sending this reply to the
>> R-devel, as per you suggestion.
>>
>> As mentioned in my post, I have no prior experience with this R function
>> and logically, I looked up its help page, which states:
>>> Conventionally the domain for *R* warning/error messages in package
>>> pkg is |"R-pkg"|, and that for C-level messages is |"pkg"|.
>> While it certainly mentions messages in the C-realm, it does not state
>> that they cannot be translated using gettext(). This is less than
>> obvious and could perhaps be explicitly stated.
>
> You are asking us to state what *can not* be done? It does clearly
> state the the domain for *R* messages in a package is "R-pkg".
> Domain "R" is not of that form.
If C-level messages really cannot be read from R code, then yes, it
makes a lot of sense to write in the documentation of this R function
that this cannot be done, e.g. the sentence could be rewritten as:
"Conventionally the domain for *R* messages in package pkg is |"R-pkg"|.
Note that C-level messages are in domain |"pkg"| but cannot be accessed
by gettext()."
> It does clearly state the the domain for *R* messages in a package is
> "R-pkg". Domain "R" is not of that form.
>> If gettext() cannot be used to get the translation for the "Error in "
>> message in some supported language, then is there an alternative?
>
> You put it in a domain named "R-pkg", prepared using xgetttext().
Thank you. I am sure that this would work but that's not really an
option seeing as I do not generate any R script files.
In case this is of use to others, I'll add that a solution is to using
ngettext() instead of gettext() (thanks Brian Cassidy). With ngettext(),
I am successful in retrieving all desired translations:
> |ngettext( 1, "Error: ", "", domain = "R" )|
Best,
Florent
>
>>
>> Best,
>>
>> Florent
>>
>>
>>
>> On 04/02/13 18:27, Prof Brian Ripley wrote:
>>> The 'wierdness' is that 'R' is a domain of C messages and you are
>>> trying to use it from R. How messages are massaged before being sent
>>> for translation depends on the language, including how trailing spaces
>>> are handled. There is no reason to expect domains intended for C
>>> code to work in R-level gettext(), nor in stop() etc.
>>>
>>> This was really an R-devel question: see the posting guide.
>>>
>>> On Mon, 4 Feb 2013, Florent Angly wrote:
>>>
>>>> Hi,
>>>>
>>>> I am trying to use the gettext() function to translate some text. I
>>>> have never used this function before, so, it's entirely possible that
>>>> I am doing something wrong. The issue that I am encountering is that
>>>> gettext() properly translates some text, but not some other.
>>>>
>>>> Natural language was compiled in my R (installed from the Debian
>>>> repositories):
>>>> $ R
>>>> R version 2.15.1 (2012-06-22) -- "Roasted Marshmallows"
>>>> [...]
>>>> Natural language support but running in an English locale
>>>> [...]
>>>>> q()
>>>>
>>>> Here is some text that has some translation in the file ./po/fr.po:
>>>> #: src/main/errors.c:290
>>>> msgid "invalid option \"warning.expression\""
>>>> msgstr "option incorrecte \"warning.expression\""
>>>> [...]
>>>> #: src/main/errors.c:582
>>>> msgid "Error in "
>>>> msgstr "Erreur dans "
>>>>
>>>> Start R in French and see if I can get something translated to French:
>>>> $ LANG=fr_FR.UTF8 R
>>>>> stop('This is an error')
>>>> Erreur : This is an error
>>>>
>>>>> bindtextdomain("R") # does not seem necessary, but just to be safe...
>>>> [1] "/usr/share/R/share/locale"
>>>>
>>>>> gettext("Error in ", domain="R")
>>>> [1] "Error in "
>>>>
>>>>> "invalid option \"warning.expression\"" -> msg; gettext(msg,
>>>>> domain="R")
>>>> [1] "option incorrecte \"warning.expression\""
>>>>
>>>>
>>>> So, the stop() function successfully translates. I can also manually
>>>> translate some entries, but why can does it not work for
>>>> gettext("Error in ", domain="R")?
>>>> Any idea?
>>>> Thanks
>>>>
>>>> Florent
>>>>
>>>> ______________________________________________
>>>> [email protected] 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.
>>>>
>>>
>>
>>
>> [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> [email protected] mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>
>
[[alternative HTML version deleted]]
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel